apache iotdb 初步使用以及遇到的问题

本文档记录了使用Apache IoTDB时遇到的问题,包括日志与Flink的冲突、存储组已存在错误、源码错误等,并详细介绍了安装步骤、Flink写入数据的实现以及对IoTDB的初步理解,强调了时间序列名称的意义和批处理的概念。
摘要由CSDN通过智能技术生成

0,遇到的问题

 1)日志显示跟flink的冲突,需要排除

<dependency>
    <groupId>org.apache.iotdb</groupId>
    <artifactId>flink-iotdb-connector</artifactId>
    <version>0.11.0</version>
    <exclusions>
        <exclusion>
            <artifactId>logback-classic</artifactId>
            <groupId>ch.qos.logback</groupId>
        </exclusion>
    </exclusions>
</dependency>

2) 在flink任务重启的时候会报错:(这里是验证flink并行度 1跟大于1的时候)

存储组已经存在。

需要将 77行要给try-catch起来,修改源码再编译,不过官方已经解决发布了

 

 

3)源码问题

大家可以测试,会报错

错误地点在tablet类

目前官方已经修改。

 

 

1,安装iotdb 

1)下载zip包 

https://iotdb.apache.org/Download/

unzip 解压

启动:

2,Flink代码写入iotdb

import com.google.common.collect.Lists;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.api.functions.source.SourceFunction;
import org.apache.iotdb.flink.DefaultIoTSerializationSchema;
import org.apache.iotdb.flink.IoTDBOptions;
import org.apache.iotdb.flink.IoTDBSink;
import org.apache.iotdb.flink.IoTSerializationSchema;

import java.util.*;

/**
 * @program: flink-neiwang-dev
 * @description: iotdb测试
 * @author: Mr.Wang
 * @create: 2020-12-01 15:38
 **/


public class IoTDBSinkInsertTest {
    public static void main(String[] args) throws Exception {
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

        IoTDBOptions options = new IoTDBOptions();
        options.setHost("192.168.6.36");
        options.setPort(6667);
        options.setUser("root");
        options.setPassword("root");
        options.setStorageGroup("root.test1");
        options.setTimeseriesOptionList(
                Lists.newArrayList(
                        new IoTDBOptions.TimeseriesOption("root.test1.D01.aaa"),
                        new IoTDBOptions.TimeseriesOption("root.test1.D01.bbb"),
                        new IoTDBOptions.TimeseriesOption("root.test1.D01.ccc")
                )
        );

        IoTSerializationSchema serializationSchema = new DefaultIoTSerializationSchema();
        IoTDBSink ioTDBSink = new IoTDBSink(options, serializationSchema)
                // enable batching
                .withBatchSize(10) ;


        env.addSource(new SensorSource())
                .name("sensor-source")
                .setParallelism(1)
                .addSink(ioTDBSink)
                .name("iotdb-sink")
                .setParallelism(1);


        env.execute("iotdb-flink-example");
    }
    private static class SensorSource implements SourceFunction< Map<String, Object>> {
        private static final long serialVersionUID = 1L;


        private volatile boolean isRunning = true;
        private int counter = 0;

        /**
         * @Description:
         * @Param:
         * @return:
         * @Author: intsmaze
         * @Date: 2019/1/5
         */
        @Override
        public void run(SourceFunction.SourceContext< Map<String, Object>> ctx) throws Exception {
            Random random = new Random();
            String[] strArray={"aaa","bbb","ccc"};

        while (true){
            Thread.sleep(5000);
            int index = random.nextInt(3);
            Map<String, Object> tuple = new HashMap();
            tuple.put("device", "root.test1.D01");
            long timeMillis = System.currentTimeMillis();
            tuple.put("timestamp", String.valueOf(timeMillis));
            tuple.put("measurements", "aa,bb,cc");

            tuple.put("types", "TEXT,TEXT,TEXT");
            tuple.put("values", "1,2,
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值