Zeppelin-IoTDB

Zeppelin 简介

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

iotdb-note-snapshot

iotdb-note-snapshot

Zeppelin-IoTDB 解释器

系统环境需求

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

安装 IoTDB:参考 快速上手Zeppelin-IoTDB - 图2open in new window. 假设 IoTDB 安装在 $IoTDB_HOME.

安装 Zeppelin:

方法 1 直接下载:下载 ZeppelinZeppelin-IoTDB - 图3open in new window 并解压二进制文件。推荐下载 netinstZeppelin-IoTDB - 图4open in new window 二进制包,此包由于未编译不相关的 interpreter,因此大小相对较小。

方法 2 源码编译:参考 从源码构建 ZeppelinZeppelin-IoTDB - 图5open in new window ,使用命令为 mvn clean package -pl zeppelin-web,zeppelin-server -am -DskipTests

假设 Zeppelin 安装在 $Zeppelin_HOME.

编译解释器

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

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

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

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

安装解释器

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

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

启动 Zeppelin 和 IoTDB

进入 $Zeppelin_HOME 并运行 Zeppelin:

  1. # Unix/OS X
  2. > ./bin/zeppelin-daemon.sh start
  3. # Windows
  4. > .\bin\zeppelin.cmd

进入 $IoTDB_HOME 并运行 IoTDB:

  1. # Unix/OS X
  2. > nohup sbin/start-server.sh >/dev/null 2>&1 &
  3. or
  4. > nohup sbin/start-server.sh -c <conf_path> -rpc_port <rpc_port> >/dev/null 2>&1 &
  5. # Windows
  6. > sbin\start-server.bat -c <conf_path> -rpc_port <rpc_port>

使用 Zeppelin-IoTDB 解释器

当 Zeppelin 启动后,访问 http://127.0.0.1:8080/Zeppelin-IoTDB - 图6open in new window

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

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

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

iotdb-create-note

iotdb-create-note

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

  1. CREATE DATABASE root.ln.wf01.wt01;
  2. CREATE TIMESERIES root.ln.wf01.wt01.status WITH DATATYPE=BOOLEAN, ENCODING=PLAIN;
  3. CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=FLOAT, ENCODING=PLAIN;
  4. CREATE TIMESERIES root.ln.wf01.wt01.hardware WITH DATATYPE=INT32, ENCODING=PLAIN;
  5. INSERT INTO root.ln.wf01.wt01 (timestamp, temperature, status, hardware)
  6. VALUES (1, 1.1, false, 11);
  7. INSERT INTO root.ln.wf01.wt01 (timestamp, temperature, status, hardware)
  8. VALUES (2, 2.2, true, 22);
  9. INSERT INTO root.ln.wf01.wt01 (timestamp, temperature, status, hardware)
  10. VALUES (3, 3.3, false, 33);
  11. INSERT INTO root.ln.wf01.wt01 (timestamp, temperature, status, hardware)
  12. VALUES (4, 4.4, false, 44);
  13. INSERT INTO root.ln.wf01.wt01 (timestamp, temperature, status, hardware)
  14. VALUES (5, 5.5, false, 55);
  15. SELECT *
  16. FROM root.ln.wf01.wt01
  17. WHERE time >= 1
  18. AND time <= 6;

样例如下:

iotdb-note-snapshot2

iotdb-note-snapshot2

用户也可以参考 [1]Zeppelin-IoTDB - 图9open in new window 编写更丰富多彩的文档。

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

解释器配置项

进入页面 http://127.0.0.1:8080/#/interpreterZeppelin-IoTDB - 图10open in new window 并配置 IoTDB 的连接参数:

iotdb-configuration

iotdb-configuration

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

属性默认值描述
iotdb.host127.0.0.1IoTDB 主机名
iotdb.port6667IoTDB 端口
iotdb.usernameroot用户名
iotdb.passwordroot密码
iotdb.fetchSize10000查询结果分批次返回时,每一批数量
iotdb.zoneId时区 ID
iotdb.enable.rpc.compressionFALSE是否允许 rpc 压缩
iotdb.time.display.typedefault时间戳的展示格式