文章目录
- 一、前置检查
- 二、集群配置说明
- 1、通用配置
- 2、ConfigNode 配置
- 3、DataNode 配置
- 三、集群操作
- 1、启动Seed-ConfigNode
- 2、增加ConfigNode(2个)
- 3、增加DataNode(3个)
- 4、验证集群
集群安装版本V1.0.0,相关下载地址可查看 单机版安装
集群官网说明文档
本次集群共3台机器,ip分别为:192.168.117.128,192.168.117.132,192.168.117.131,其中192.168.117.128作为seed-confignode
一、前置检查
①JDK>=1.8 的运行环境,并配置好 JAVA_HOME 环境变量。
②设置最大文件打开数为 65535。
sysctl -w net.core.somaxconn=65535
③关闭交换内存。
#方法1
# 先备份
cp /etc/selinux/config /etc/selinux/config.bak
# 更改setlinux级别,enforcing代表打开,disabled代表关闭
sed -i 's/SELINUX=enforcing/\SELINUX=permissive/' /etc/selinux/config
# 重启机器
reboot
# 方法2
vi /etc/selinux/config
# 设置SELINUX值如
SELINUX=permissive
# 设置iptables
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
iptables -L -n
# 重启机器
reboot
# 查看selinux状态,如下图则配置成功:
getenforce
④首次启动ConfigNode节点时,确保已清空ConfigNode节点的data/confignode目录;首次启动DataNode节点时,确保已清空DataNode节点的data/datanode目录。
⑤如果整个集群处在可信环境下,可以关闭机器上的防火墙选项。
⑥在集群默认配置中,ConfigNode 会占用端口 10710 和 10720,DataNode 会占用端口 6667、10730、10740、10750 和 10760, 请确保这些端口未被占用,或者手动修改配置文件中的端口配置
二、集群配置说明
注:将安装包放在所有集群机器的同一目录下,以下所有配置项在集群启动后不可修改
1、通用配置
注:务必保证所有节点的通用配置完全一致,否则节点无法启动,通用配置为./conf/iotdb-common.properties。
配置说明参考文档
配置项 | 说明 | 默认 |
---|---|---|
cluster_name | 节点希望加入的集群的名称 | defaultCluster |
config_node_consensus_protocol_class | ConfigNode 使用的共识协议 | org.apache.iotdb.consensus.ratis.RatisConsensus |
schema_replication_factor | 元数据副本数,DataNode 数量不应少于此数目 | 1 |
schema_region_consensus_protocol_class | 元数据副本组的共识协议 | org.apache.iotdb.consensus.ratis.RatisConsensus |
data_replication_factor | 数据副本数,DataNode 数量不应少于此数目 | 1 |
data_region_consensus_protocol_class | 数据副本组的共识协议。注:RatisConsensus 目前不支持多数据目录 | org.apache.iotdb.consensus.iot.IoTConsensus |
本次集群cluster_name=ButtonCluster
2、ConfigNode 配置
注:务必保证所有端口均未被占用,否则节点无法启动,配置文件为./conf/iotdb-confignode.properties
配置项 | 说明 | 默认 | 默认 |
---|---|---|---|
cn_internal_address | ConfigNode 在集群内部通讯使用的地址 | 127.0.0.1 | 设置为服务器的 IPV4 地址或域名 |
cn_internal_port | ConfigNode 在集群内部通讯使用的端口 | 10710 | 设置为任意未占用端口 |
cn_consensus_port | ConfigNode 副本组共识协议通信使用的端口 | 10720 | 设置为任意未占用端口 |
cn_target_config_node_list | 节点注册加入集群时连接的 ConfigNode 的地址。注:只能配置一个 | 127.0.0.1:10710 | 对于 Seed-ConfigNode,设置为自己的 cn_internal_address:cn_internal_port;对于其它 ConfigNode,设置为另一个正在运行的 ConfigNode 的 cn_internal_address:cn_internal_port |
3、DataNode 配置
注:务必保证所有端口均未被占用,否则节点无法启动,配置文件为./conf/iotdb-datanode.properties
配置项 | 说明 | 默认 | 默认 |
---|---|---|---|
dn_rpc_address | 客户端 RPC 服务的地址 | 127.0.0.1 | 设置为服务器的 IPV4 地址或域名 |
dn_rpc_port | 客户端 RPC 服务的端口 | 6667 | 设置为任意未占用端口 |
设置为任意未占用端口 | DataNode 在集群内部接收控制流使用的地址 | 127.0.0.1 | 设置为服务器的 IPV4 地址或域名 |
dn_internal_port | DataNode 在集群内部接收控制流使用的端口 | 10730 | 设置为任意未占用端口 |
dn_mpp_data_exchange_port | DataNode 在集群内部接收数据流使用的端口 | 10740 | 设置为任意未占用端口 |
dn_data_region_consensus_port | DataNode 的数据副本间共识协议通信的端口 | 10750 | 设置为任意未占用端口 |
dn_schema_region_consensus_port | DataNode 的元数据副本间共识协议通信的端口 | 10760 | 设置为任意未占用端口 |
dn_target_config_node_list | 集群中正在运行的 ConfigNode 地址 | 127.0.0.1:10710 | 设置为任意正在运行的 ConfigNode 的 cn_internal_address:cn_internal_port,可设置多个,用逗号(“,”)隔开 |
三、集群操作
本次启动3个ConfigNode 和 3个DataNode 的集群,集群可以提供服务的标准是至少启动一个 ConfigNode 且启动 不小于(数据/元数据)副本个数的 DataNode,要求3集群公共配置的./conf/iotdb-common.properites必须保持一致。
流程如下:
①启动种子 ConfigNode(Seed-ConfigNode:第一个启动的ConfigNode)
②增加 ConfigNode(可选)
③增加 DataNode
1、启动Seed-ConfigNode
集群第一个启动的节点必须是 ConfigNode, 第一个启动的 ConfigNode 是 Seed-ConfigNode,标志着新集群的创建。启动前一定要检查好 ./conf/iotdb-common.properties中的配置
配置项 | 检查 |
---|---|
cluster_name | 已设置为期望的集群名称 |
config_node_consensus_protocol_class | 已设置为期望的共识协议 |
schema_replication_factor | schema_replication_factor |
schema_region_consensus_protocol_class | 已设置为期望的共识协议 |
data_replication_factor | 已设置为期望的数据副本数 |
data_region_consensus_protocol_class | 已设置为期望的共识协议 |
检查Seed-ConfigNode的 ./conf/iotdb-confignode.properties配置
配置项 | 检查 |
---|---|
cn_internal_address | 已设置为服务器的 IPV4 地址或域名 |
cn_internal_port | 该端口未被占用 |
cn_consensus_port | 该端口未被占用 |
cn_target_config_node_list | 已设置为自己的内部通讯地址,即 cn_internal_address:cn_internal_port |
启动confignode,切换至sbin目录
nohup bash ./start-confignode.sh >/dev/null 2>&1 &
启动日志:
apache-iotdb-1.0.0-all-bin/logs/log_confignode_all.log
2、增加ConfigNode(2个)
启动前务必保证 ./conf/iotdb-common.properites 中的所有配置参数与 Seed-ConfigNode 完全一致
配置 ./conf/iotdb-confignode.properties
启动confignode,切换至sbin目录
nohup bash ./start-confignode.sh >/dev/null 2>&1 &
3、增加DataNode(3个)
在保证ConfigNode启动成功后才可以增加DataNode,配置 ./conf/iotdb-datanode.properties
配置项 | 检查 |
---|---|
dn_rpc_address | 已设置为服务器的 IPV4 地址或域名 |
dn_rpc_port | 该端口未被占用 |
dn_internal_address | 已设置为服务器的 IPV4 地址或域名 |
dn_internal_port | 该端口未被占用 |
dn_mpp_data_exchange_port | 该端口未被占用 |
dn_data_region_consensus_port | 该端口未被占用 |
dn_schema_region_consensus_port | 该端口未被占用 |
dn_target_config_node_list | 已设置为正在运行的 ConfigNode 的内部通讯地址,推荐使用 Seed-ConfigNode 的内部通讯地址 |
启动,进入sbin目录执行
nohup bash ./start-datanode.sh >/dev/null 2>&1 &
启动日志:
apache-iotdb-1.0.0-all-bin/logs/log_datanode_all.log
4、验证集群
show cluster details
查询confignode
查询datanode