IOTDB双节点部署

设置最大打开文件数为65535,以避免出现 "太多的打开文件 "的错误。

bash 复制代码
sysctl -w net.core.somaxconn=65535

#双节点集群配置模板(两台机器通用) 通用配置:iotdb-common.properties

#集群名称(所有节点必须一致)

cluster_name=my_iotdb_cluster

#元数据副本数(双节点集群设为2)

schema_replication_factor=2

#数据副本数(双节点集群设为2)

data_replication_factor=2

#共识协议配置(保持默认即可)

config_node_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus

schema_region_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus

data_region_consensus_protocol_class=org.apache.iotdb.consensus.iot.IoTConsensus

节点 A 配置(ConfigNode 配置:iotdb-confignode.properties)

#当前节点内部通信地址

cn_internal_address=节点AIP

cn_internal_port=10710

cn_consensus_port=10720

#Seed-ConfigNode 指向自身

cn_target_config_node_list=节点AIP :10710

DataNode 配置:iotdb-datanode.properties

#客户端RPC地址

dn_rpc_address=节点AIP

dn_rpc_port=6667

#内部通信地址

dn_internal_address=节点AIP

dn_internal_port=10730

dn_mpp_data_exchange_port=10740

dn_data_region_consensus_port=10750

dn_schema_region_consensus_port=10760

#连接ConfigNode的地址

dn_target_config_node_list=节点AIP:10710

节点 B配置(ConfigNode 配置:iotdb-confignode.properties)

#当前节点内部通信地址

cn_internal_address=节点BIP

cn_internal_port=10710

cn_consensus_port=10720

#指向已运行的Seed-ConfigNode

cn_target_config_node_list=节点AIP:10710

DataNode 配置:iotdb-datanode.properties

#客户端RPC地址

dn_rpc_address=节点BIP

dn_rpc_port=6667

#内部通信地址

dn_internal_address=节点BIP

dn_internal_port=10730

dn_mpp_data_exchange_port=10740

dn_data_region_consensus_port=10750

dn_schema_region_consensus_port=10760

#连接ConfigNode的地址

dn_target_config_node_list=节点AIP:10710

一键启动脚本(⚠️ 注意:必须先在节点 A 执行脚本,等待 ConfigNode 完全启动后,再在节点 B 执行,否则节点 B 的 ConfigNode 可能无法正常加入集群。)

bash 复制代码
#!/bin/bash

# ===================== 配置项(根据你的实际路径修改)=====================
IOTDB_HOME="部署路径修改"  # IoTDB安装根目录
LOG_DIR="${IOTDB_HOME}/logs"   # 日志存储目录

# ===================== 确保日志目录存在 =====================
mkdir -p ${LOG_DIR}

# ===================== 1. 后台启动 ConfigNode =====================
echo "正在后台启动 ConfigNode..."
nohup bash ${IOTDB_HOME}/sbin/start-confignode.sh > ${LOG_DIR}/confignode_nohup.log 2>&1 &

# 等待3秒,确保ConfigNode完全启动
sleep 3

# 检查ConfigNode是否启动成功
if jps | grep -q ConfigNode; then
  echo "ConfigNode 后台启动成功,日志路径:${LOG_DIR}/confignode_nohup.log"
else
  echo "ConfigNode 启动失败,请查看日志:${LOG_DIR}/confignode_nohup.log"
  exit 1
fi

# ===================== 2. 后台启动 DataNode =====================
echo "正在后台启动 DataNode..."
nohup bash ${IOTDB_HOME}/sbin/start-datanode.sh > ${LOG_DIR}/datanode_nohup.log 2>&1 &

# 等待3秒,确保DataNode完全启动
sleep 3

# 检查DataNode是否启动成功
if jps | grep -q DataNode; then
  echo "DataNode 后台启动成功,日志路径:${LOG_DIR}/datanode_nohup.log"
else
  echo "DataNode 启动失败,请查看日志:${LOG_DIR}/datanode_nohup.log"
  exit 1
fi

echo "=================================================="
echo "集群节点后台启动完成!"
echo "可用 jps | grep -E 'ConfigNode|DataNode' 查看进程状态"
echo "=================================================="

启动顺序说明

先启动节点 A 的 ConfigNode

再启动节点 B 的 ConfigNode

最后启动两台机器的 DataNode

验证连接任意节点的 CLI

相关推荐
xcLeigh8 天前
IoTDB 数据导入全攻略:工具、自动加载与 Load SQL 详解
数据库·sql·工具·iotdb·数据导入·loadsql
xcLeigh9 天前
IoTDB 性能优化双杀:查询分析与负载均衡实战指南
性能优化·负载均衡·时序数据库·iotdb
xcLeigh9 天前
基于 IoT-benchmark 的时序数据库性能测试实战:从安装到结果分析
数据库·物联网·性能测试·时序数据库·iotdb
鸽芷咕13 天前
时序数据库选型解析及Apache IoTDB技术实践
apache·时序数据库·iotdb
Pocker_Spades_A13 天前
从数据生命周期出发的时序数据库选型指南:用 Apache IoTDB 把“存储成本”和“查询体验”一起算清楚
apache·时序数据库·iotdb
byte轻骑兵13 天前
大数据场景时序数据库选型指南——Apache IoTDB实践与解析
大数据·数据库·apache·时序数据库·iotdb
一个天蝎座 白勺 程序猿16 天前
Apache IoTDB(14):IoTDB结果集排序与查询对齐模式——ORDER BY与ALIGN BY DEVICE使用
大数据·ai·apache·时序数据库·iotdb
一个天蝎座 白勺 程序猿16 天前
Apache IoTDB(9):数据库操作——数据写入从CLI到集群部署的六种实战
数据库·apache·时序数据库·iotdb
程序员阿明16 天前
docker 搭建iotdb集群2版本的
docker·容器·iotdb
正在走向自律16 天前
时序数据库选型指南:聚焦Apache IoTDB的核心优势与应用实践
apache·时序数据库·iotdb