本文是参考官方的 IoTDB 集群版(1.0.0)的安装及启动教程:https://iotdb.apache.org/zh/UserGuide/V1.0.x/Cluster/Cluster-Setup.html ,在Windows Server 2019上部署集群的实践记录。
前置检查
使用微软发布的OpenJDK 17 运行环境,并配置好 JAVA_HOME 环境变量。从微软官方网站下载 https://learn.microsoft.com/zh-cn/java/openjdk/download
下载msi的一键安装包 microsoft-jdk-17.0.5-windows-x64.msi。 在服务器上进行安装
修改Windows的注册表,将Tcpip的参数MaxUserPort=65534 和 TcpTimedWaitDelay=30
首次启动ConfigNode节点时,确保已清空ConfigNode节点的data/confignode目录;首次启动DataNode节点时,确保已清空DataNode节点的data/datanode目录。
如果整个集群处在可信环境下,可以关闭机器上的防火墙选项,在windows 防火墙下开通iotdb 规则,我开通了如下端口6667, 10710-10760, 22277, 8777, 40010, 50010,9003.
。
在集群默认配置中,ConfigNode 会占用端口 10710 和 10720,DataNode 会占用端口 6667、10730、10740、10750 和 10760, 请确保这些端口未被占用,或者手动修改配置文件中的端口配置。
安装包获取
打开官网Download Page :https://iotdb.apache.org/Download/
下载 IoTDB 1.0.0 版本的All in one二进制文件。
解压得到 apache-iotdb-1.0.0目录,目录有一个注意事项是在路径上不能有空格。打开 apache-iotdb-1.0.0,可见以下目录:
集群安装配置
集群安装
IoTdb 包含 ConfigNode 和 DataNode, 请将安装包部署于你目标集群的所有机器上,推荐将安装包部署于所有服务器的相同目录下。 本次集群共3台机器,ip分别为:192.168.67.45,192.168.67.46,192.168.67.47,其中192.168.67.45 作为seed-confignode.
集群配置
接下来需要修改每个服务器上的配置文件,登录服务器, 并将工作路径切换至 apache-iotdb-1.0.0
, 配置文件在 ./conf
目录内,以下所有配置项在集群启动后不可修改。
- 对于所有部署 ConfigNode 的服务器,需要修改通用配置ConfigNode 配置
- 对于所有部署 DataNode 的服务器,需要修改通用配置和 DataNode 配置
1、通用配置
注:务必保证所有节点的通用配置完全一致,否则节点无法启动,通用配置为./conf/iotdb-common.properties,本次集群cluster_name=TrueloveCluster。
2、ConfigNode 配置
注:务必保证所有端口均未被占用,否则节点无法启动,配置文件为./conf/iotdb-confignode.properties
3、DataNode 配置
注:务必保证所有端口均未被占用,否则节点无法启动,配置文件为./conf/iotdb-datanode.properties
启动集群
本次启动3个ConfigNode 和 3个DataNode 的集群,集群可以提供服务的标准是至少启动一个 ConfigNode 且启动 不小于(数据/元数据)副本个数的 DataNode,要求3集群公共配置的./conf/iotdb-common.properites必须保持一致。
总体启动流程分为三步:
- 启动种子 ConfigNode
- 增加 ConfigNode(可选)
- 增加 DataNode
1、启动 Seed-ConfigNode
集群第一个启动的节点必须是 ConfigNode,第一个启动的 ConfigNode 必须遵循本小节教程。
第一个启动的 ConfigNode 是 Seed-ConfigNode,标志着新集群的创建。 在启动 Seed-ConfigNode 前,请打开通用配置文件 ./conf/iotdb-common.properties,并检查如下参数:
启动confignode,切换至sbin目录运行启动脚本:
.\sbin\start-confignode.bat
2、增加ConfigNode(2个)
启动前务必保证 ./conf/iotdb-common.properites 中的所有配置参数与 Seed-ConfigNode 完全一致,配置 ./conf/iotdb-confignode.properties
服务器192.168.67.46
服务器192.168.67.47
启动confignode,切换至sbin目录运行启动脚本:
.\sbin\start-confignode.bat
3、增加DataNode(3个)
在保证ConfigNode启动成功后才可以增加DataNode,配置 ./conf/iotdb-datanode.properties
可以向集群中添加任意个 DataNode。 在添加新的 DataNode 前,请先打开通用配置文件 ./conf/iotdb-common.properties 并检查以下参数:
接着打开它的配置文件 ./conf/iotdb-datanode.properties 并检查以下参数:
服务器192.168.67.45
服务器192.168.67.46
服务器192.168.67.47
启动,进入sbin目录执行启动脚本
.\sbin\start-datanode.bat
验证集群
以上是在3台服务器上启动的3C3D(3个ConfigNode 和 3个DataNode)集群为例, 这里假设3个ConfigNode的IP地址依次为192.168.67.45,192.168.67.46,192.168.67.47,且3个ConfigNode启动时均使用了默认的端口10710与10720; 3个DataNode的IP地址依次为192.168.67.45,192.168.67.46,192.168.67.47,且3个DataNode启动时均使用了默认的端口6667、10730、10740、10750与10760。
在 Cli 执行 show cluster details
,看到的结果应当如下:
所有节点的状态均为 Running,则说明集群部署成功。上面有两个DataNode的状态是Unknown. 检查DataNode的启动日志没有问题, 这是由于还有相关的端口没有在防火墙上开通,需要开通如下端口号: 6667, 10710-10760, 22277, 8777, 40010, 50010,9003.