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

相关推荐
逍遥德9 天前
MQTT教程详解-04.SpringBoot集成MQTT(告别手动控制)
java·spring boot·物联网·中间件·iot·iotdb
一个天蝎座 白勺 程序猿9 天前
时序大模型云服务快速上手:定义与核心能力
数据库·iotdb·云服务·timechoai
想你依然心痛14 天前
工业物联网云原生时代:时序数据库全链路选型与 Apache IoTDB 实践
物联网·云原生·时序数据库·iotdb
逍遥德14 天前
物联网-01-Spring Boot + MyBatis‑Plus 操作 IoTDB(表模型)
spring boot·物联网·iotdb
小学鸡!18 天前
IoTDB数据库导入导出数据
数据库·iotdb
xcLeigh25 天前
IoTDB JDBC 完整使用教程:连接、查询、批处理与字符集配置
开发语言·数据库·qt·iotdb·查询·批处理·连接
隔窗听雨眠1 个月前
IoTDB与TimechoDB深度解析
时序数据库·iotdb·timechodb
攻城狮7号1 个月前
时序数据库怎么选:从业务需求到 IoTDB 的一条线
数据库·时序数据库·iotdb·ai数据库
Apache IoTDB1 个月前
时序数据库 IoTDB + 时序智能服务平台 TimechoAI 亮相中国核电信息技术高峰论坛
数据库·时序数据库·iotdb
wei_shuo1 个月前
工业物联网数据中枢:TDengine 的云原生与智能分析进化之路
iotdb