官方说明文档
下载地址
https://iotdb.apache.org/Download/
这里下载的1.2.2版本
链接: https://pan.baidu.com/s/1B1c2DTd1k8MA84V4CxdAjw?pwd=k5c8 提取码: k5c8
安装包目录结构
/data/iotdb/
├── conf # 配置文件
├── lib # jar library
├── sbin # 启动/停止等脚本
└── tools # 其他工具
服务安装
节点服务分配
节点IP | 192.168.132.10 | 192.168.132.11 | 192.168.132.12 |
---|---|---|---|
服务 | ConfigNode | ConfigNode | ConfigNode |
服务 | DataNode | DataNode | DataNode |
端口占用:
服务 | ConfigNode | DataNode |
---|---|---|
端口 | 10710, 10720 | 6667, 10730, 10740, 10750, 10760 |
修改配置文件
配置文件在 /data/iotdb/conf
目录下。
配置文件 | 配置项 | IP:192.168.132.10 | IP:192.168.132.11 | IP:192.168.132.12 |
---|---|---|---|---|
iotdb-confignode.properties | cn_internal_address | 192.168.132.10 | 192.168.132.11 | 192.168.132.12 |
cn_target_config_node_list | 192.168.132.10:10710 | 192.168.132.10:10710 | 192.168.132.10:10710 | |
iotdb-datanode.properties | dn_rpc_address | 192.168.132.10 | 192.168.132.11 | 192.168.132.12 |
dn_internal_address | 192.168.132.10 | 192.168.132.11 | 192.168.132.12 | |
dn_target_config_node_list | 192.168.132.10:10710 | 192.168.132.10:10710 | 192.168.132.10:10710 |
修改堆内存
confignode-env.sh
设置 MAX_HEAP_SIZE="2G"
datanode-env.sh
设置MAX_HEAP_SIZE="16G"
- JVM堆内存配置:
confignode-env.sh
和datanode-env.sh
内配置MAX_HEAP_SIZE
, 建议设置值大于等于1G。ConfigNode 1~2G就足够了,DataNode的内存配置则要取决于数据接入的数据量和查询数据量。
启动集群
启动第一个节点
即上面表格中cn_target_config_node_list
配置的节点。
登录该节点 192.168.132.10,执行下面命令:
cd /data/iotdb
# 启动 ConfigNode 和 DataNode 服务
sbin/start-standalone.sh
# 查看 DataNode 日志以确定启动成功
tail -f logs/log_datanode_all.log
# 期望看见类似下方的日志
# 2023-07-21 20:26:01,881 [main] INFO o.a.i.db.service.DataNode:192 - Congratulation, IoTDB DataNode is set up successfully. Now, enjoy yourself!
如果没有看到上面所说的日志或者看到了 Exception,那么代表启动失败了。请查看 /data/iotdb/logs
目录内的log_confignode_all.log
和 log_datanode_all.log
日志文件。
注意:
要保证第一个节点启动成功后,再启动其他节点。确切的说,要先保证第一个 ConfigNode 服务启动成功,即
cn_target_config_node_list
配置的节点。如果启动失败,需要清理环境(参考清理环境章节)后,再次启动。
ConfigNode 和 DataNode 服务都可以单独启动:
# 单独启动 ConfigNode, 后台启动 sbin/start-confignode.sh -d # 单独启动 DataNode,后台启动 sbin/start-datanode.sh -d
启动其他两个节点的 ConfigNode 和 DataNode
在节点 192.168.132.11 和 192.168.132.12 两个节点上分别执行:
cd /data/iotdb
# 启动 ConfigNode 和 DataNode 服务
sbin/start-standalone.sh
如果启动失败,需要在所有节点执行清理环境后,然后从启动第一个节点开始,再重新执行一次。
检验集群状态
在任意节点上,在 Cli 执行 show cluster
:
/data/iotdb/sbin/start-cli.sh -h 192.168.132.10
IoTDB>show cluster;
# 示例结果如下:
+------+----------+-------+---------------+------------+-------+---------+
|NodeID| NodeType| Status|InternalAddress|InternalPort|Version|BuildInfo|
+------+----------+-------+---------------+------------+-------+---------+
| 0|ConfigNode|Running| 192.168.132.10| 10710|1.x.x | xxxxxxx|
| 1| DataNode|Running| 192.168.132.10| 10730|1.x.x | xxxxxxx|
| 2|ConfigNode|Running| 192.168.132.11| 10710|1.x.x | xxxxxxx|
| 3| DataNode|Running| 192.168.132.11| 10730|1.x.x | xxxxxxx|
| 4|ConfigNode|Running| 192.168.132.12| 10710|1.x.x | xxxxxxx|
| 5| DataNode|Running| 192.168.132.12| 10730|1.x.x | xxxxxxx|
+------+----------+-------+---------------+------------+--------------+---------+
说明:start-cli.sh -h
后指定的IP地址,可以是任意一个 DataNode 的IP地址。
修改集群密码
bash sbin/start-cli.sh -h 172.16.24.224 -p 6667 -u root -pw root
ALTER USER root SET PASSWORD '123123';
【附录】清理环境
在所有节点执行:
- 结束 ConfigNode 和 DataNode 进程。
# 1. 停止 ConfigNode 和 DataNode 服务
sbin/stop-standalone.sh
# 2. 检查是否还有进程残留
jps
# 或者
ps -ef|gerp iotdb
# 3. 如果有进程残留,则手动kill
kill -9 <pid>
# 如果确定机器上仅有1个iotdb,可以使用下面命令清理残留进程
ps -ef|grep iotdb|grep -v grep|tr -s ' ' ' ' |cut -d ' ' -f2|xargs kill -9
- 删除 data 和 logs 目录。
cd /data/iotdb
rm -rf data logs
说明:删除 data 目录是必要的,删除 logs 目录是为了纯净日志,非必需。
集群扩容
扩容方式与上方启动其他节点相同。也就是,在要添加的节点上,下载IoTDB的安装包,解压,修改配置,然后启动。这里要添加节点的IP为 192.168.132.13
注意:
- 扩容的节点必须是干净的节点,不能有数据(也就是
data
目录) - iotdb-common.properties中的
cluster_name
的配置必须和已有集群一致。 cn_target_config_node_list
和dn_target_config_node_list
的配置必须和已有集群一致。- 原有数据不会移动到新节点,新创建的元数据分区和数据分区很可能在新的节点。
修改配置
按照下表修改相应的配置文件:
配置 | 配置项 | IP:192.168.132.13 |
---|---|---|
iotdb-confignode.properties | cn_internal_address | 192.168.132.13 |
cn_target_config_node_list | 192.168.132.10:10710 | |
iotdb-datanode.properties | dn_rpc_address | 192.168.132.13 |
dn_internal_address | 192.168.132.13 | |
dn_target_config_node_list | 192.168.132.10:10710 |
扩容
在新增节点192.168.132.13
上,执行:
cd /data/iotdb
# 启动 ConfigNode 和 DataNode 服务
sbin/start-standalone.sh
验证扩容结果
在 Cli 执行 show cluster
,结果如下:
/data/iotdb/sbin/start-cli.sh -h 192.168.132.10
IoTDB>show cluster;
# 示例结果如下:
+------+----------+-------+---------------+------------+-------+---------+
|NodeID| NodeType| Status|InternalAddress|InternalPort|Version|BuildInfo|
+------+----------+-------+---------------+------------+-------+---------+
| 0|ConfigNode|Running| 192.168.132.10| 10710|1.x.x | xxxxxxx|
| 1| DataNode|Running| 192.168.132.10| 10730|1.x.x | xxxxxxx|
| 2|ConfigNode|Running| 192.168.132.11| 10710|1.x.x | xxxxxxx|
| 3| DataNode|Running| 192.168.132.11| 10730|1.x.x | xxxxxxx|
| 4|ConfigNode|Running| 192.168.132.12| 10710|1.x.x | xxxxxxx|
| 5| DataNode|Running| 192.168.132.12| 10730|1.x.x | xxxxxxx|
| 6|ConfigNode|Running| 192.168.132.13| 10710|1.x.x | xxxxxxx|
| 7| DataNode|Running| 192.168.132.13| 10730|1.x.x | xxxxxxx|
+------+----------+-------+---------------+------------+-------+---------+
集群缩容
注意:
- 可以在任何一个集群内的节点上,执行缩容操作。
- 集群内的任意节点都可以被缩容。但是存留的 DataNode 服务不能小于副本数设置。
- 请耐心等待缩容脚本执行结束,并仔细阅读日志说明,尤其是结束前的指南说明。
缩容一个 ConfigNode
cd /data/iotdb
# 方式一:使用 ip:port 移除
sbin/remove-confignode.sh 192.168.132.13:10710
# 方式二:使用节点编号移除, `show cluster`中的 NodeID
sbin/remove-confignode.sh 6
缩容一个 DataNode
cd /data/iotdb
# 方式一:使用 ip:port 移除
sbin/remove-datanode.sh 192.168.132.13:6667
# 方式二:使用节点编号移除, `show cluster`中的 NodeID
sbin/remove-confignode.sh 7
验证缩容结果
在 Cli 执行 show cluster
,结果如下:
+------+----------+-------+---------------+------------+-------+---------+
|NodeID| NodeType| Status|InternalAddress|InternalPort|Version|BuildInfo|
+------+----------+-------+---------------+------------+-------+---------+
| 0|ConfigNode|Running| 192.168.132.10| 10710|1.x.x | xxxxxxx|
| 1| DataNode|Running| 192.168.132.10| 10730|1.x.x | xxxxxxx|
| 2|ConfigNode|Running| 192.168.132.11| 10710|1.x.x | xxxxxxx|
| 3| DataNode|Running| 192.168.132.11| 10730|1.x.x | xxxxxxx|
| 4|ConfigNode|Running| 192.168.132.12| 10710|1.x.x | xxxxxxx|
| 5| DataNode|Running| 192.168.132.12| 10730|1.x.x | xxxxxxx|
+------+----------+-------+---------------+------------+-------+---------+