跳至主要內容

大约 3 分钟

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:参考 快速上手open in new window. 假设 IoTDB 安装在 $IoTDB_HOME.

安装 Zeppelin:

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

方法 2 源码编译:参考 从源码构建 Zeppelinopen in 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

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

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

安装解释器

当你编译好了解释器,在 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

启动 Zeppelin 和 IoTDB

进入 $Zeppelin_HOME 并运行 Zeppelin:

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

# Windows
> .\bin\zeppelin.cmd

进入 $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>

使用 Zeppelin-IoTDB 解释器

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

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

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

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

iotdb-create-note
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;

样例如下:

iotdb-note-snapshot2
iotdb-note-snapshot2

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

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

解释器配置项

进入页面 http://127.0.0.1:8080/#/interpreteropen 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时间戳的展示格式

Copyright © 2024 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.