# Zeppelin-IoTDB

# Zeppelin简介

Apache Zeppelin 是一个基于网页的交互式数据分析系统。用户可以通过Zeppelin连接数据源并使用SQL、Scala等进行交互式操作。操作可以保存为文档(类似于Jupyter)。Zeppelin支持多种数据源,包括Spark、ElasticSearch、Cassandra和InfluxDB等等。现在,IoTDB已经支持使用Zeppelin进行操作。样例如下:

iotdb-note-snapshot

# Zeppelin-IoTDB解释器

# 系统环境需求

IoTDB 版本 Java 版本 Zeppelin 版本
>=0.12.0-SNAPSHOT >=1.8.0_271 >=0.9.0

安装 IoTDB:参考 Quick Start. 假设 IoTDB 安装在 $IoTDB_HOME.

安装 Zeppelin:

方法1 直接下载:下载 Zeppelin (opens new window) 并解压二进制文件。推荐下载 netinst (opens new window) 二进制包,此包由于未编译不相关的interpreter,因此大小相对较小。

方法2 源码编译:参考从源码构建 Zeppelin (opens new window) ,使用命令为 mvn clean package -pl zeppelin-web,zeppelin-server -am -DskipTests

假设 Zeppelin 安装在 $Zeppelin_HOME.

# 编译解释器

运行如下命令编译IoTDB Zeppelin解释器。

cd $IoTDB_HOME
mvn clean package -pl zeppelin-interpreter -am -DskipTests -P get-jar-with-dependencies
1
2

编译后的解释器位于如下目录:

$IoTDB_HOME/zeppelin-interpreter/target/zeppelin-{version}-SNAPSHOT-jar-with-dependencies.jar
1

# 安装解释器

当你编译好了解释器,在Zeppelin的解释器目录下创建一个新的文件夹iotdb,并将IoTDB解释器放入其中。

cd $IoTDB_HOME
mkdir -p $Zeppelin_HOME/interpreter/iotdb
cp $IoTDB_HOME/zeppelin-interpreter/target/zeppelin-{version}-SNAPSHOT-jar-with-dependencies.jar $Zeppelin_HOME/interpreter/iotdb
1
2
3

# 启动 Zeppelin 和 IoTDB

进入 $Zeppelin_HOME 并运行Zeppelin:

# Unix/OS X
> ./bin/zeppelin-daemon.sh start

# Windows
> .\bin\zeppelin.cmd
1
2
3
4
5

进入 $IoTDB_HOME 并运行IoTDB:

# Unix/OS X
> nohup sbin/start-server.sh >/dev/null 2>&1 &
or
> nohup sbin/start-server.sh -c <conf_path> -rpc_port <rpc_port> >/dev/null 2>&1 &

# Windows
> sbin\start-server.bat -c <conf_path> -rpc_port <rpc_port>
1
2
3
4
5
6
7

# 使用 Zeppelin-IoTDB解释器

当Zeppelin启动后,访问 http://127.0.0.1:8080/ (opens new window)

通过如下步骤创建一个新的笔记本页面:

  1. 点击 Create new node 按钮
  2. 设置笔记本名
  3. 选择解释器为iotdb

现在可以开始使用Zeppelin操作IoTDB了。

iotdb-create-note

我们提供了一些简单的SQL来展示Zeppelin-IoTDB解释器的使用:

SET STORAGE GROUP TO root.ln.wf01.wt01;
CREATE TIMESERIES root.ln.wf01.wt01.status WITH DATATYPE=BOOLEAN, ENCODING=PLAIN;
CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=FLOAT, ENCODING=PLAIN;
CREATE TIMESERIES root.ln.wf01.wt01.hardware WITH DATATYPE=INT32, ENCODING=PLAIN;

INSERT INTO root.ln.wf01.wt01 (timestamp, temperature, status, hardware)
VALUES (1, 1.1, false, 11);

INSERT INTO root.ln.wf01.wt01 (timestamp, temperature, status, hardware)
VALUES (2, 2.2, true, 22);

INSERT INTO root.ln.wf01.wt01 (timestamp, temperature, status, hardware)
VALUES (3, 3.3, false, 33);

INSERT INTO root.ln.wf01.wt01 (timestamp, temperature, status, hardware)
VALUES (4, 4.4, false, 44);

INSERT INTO root.ln.wf01.wt01 (timestamp, temperature, status, hardware)
VALUES (5, 5.5, false, 55);


SELECT *
FROM root.ln.wf01.wt01
WHERE time >= 1
	AND time <= 6;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

样例如下:

iotdb-note-snapshot2

用户也可以参考 [1] (opens new window) 编写更丰富多彩的文档。

以上样例放置于 $IoTDB_HOME/zeppelin-interpreter/Zeppelin-IoTDB-Demo.zpln

# 解释器配置项

进入页面 http://127.0.0.1:8080/#/interpreter (opens new window) 并配置IoTDB的连接参数:

iotdb-configuration

可配置参数默认值和解释如下:

属性 默认值 描述
iotdb.host 127.0.0.1 IoTDB 主机名
iotdb.port 6667 IoTDB 端口
iotdb.username root 用户名
iotdb.password root 密码
iotdb.fetchSize 10000 查询结果分批次返回时,每一批数量
iotdb.zoneId 时区ID
iotdb.enable.rpc.compression FALSE 是否允许rpc压缩
iotdb.time.display.type default 时间戳的展示格式

Copyright © 2022 The Apache Software Foundation.
Apache and the Apache feather logo are trademarks of The Apache Software Foundation

Have a question? Connect with us on QQ, WeChat, or Slack. Join the community now.

We use Google Analytics to collect anonymous, aggregated usage information.