跳至主要內容

Zeppelin-IoTDB

...大约 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 iotdb-connector/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 解释器的使用:

CREATE DATABASE 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 IoTDB, IoTDB, Apache, the Apache feather logo, and the Apache IoTDB project logo are either registered trademarks or trademarks of The Apache Software Foundation in all countries

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