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

相关推荐
攻城狮7号2 天前
时序数据库怎么选:从业务需求到 IoTDB 的一条线
数据库·时序数据库·iotdb·ai数据库
Apache IoTDB5 天前
时序数据库 IoTDB + 时序智能服务平台 TimechoAI 亮相中国核电信息技术高峰论坛
数据库·时序数据库·iotdb
wei_shuo6 天前
工业物联网数据中枢:TDengine 的云原生与智能分析进化之路
iotdb
xcLeigh10 天前
IoTDB Rust 原生接口开发指南:从零生成 + 完整 RPC 调用
数据库·rpc·rust·接口·api·时序数据库·iotdb
回忆2012初秋17 天前
时序库.net平台下的推荐 SonnetDB,一文分析清除他与Apache IoTDB的区同
apache·iotdb
逍遥德18 天前
MQTT教程详解-03. 高级知识点
java·物联网·中间件·信息与通信·iot·iotdb
回忆2012初秋21 天前
.NET 时序数据操作实战:Apache IoTDB连接与 CRUD 完全指南
.net·apache·iotdb
百锦再21 天前
时序数据库选型指南:大数据时代的“数据基建”与 IoTDB 的工业原生之路
大数据·数据库·mysql·oracle·sqlserver·时序数据库·iotdb
檀越剑指大厂21 天前
时序数据库选型指南-IoTDB
数据库·时序数据库·iotdb
Francek Chen24 天前
【IoTDB】工业物联网时序数据库优选:Apache IoTDB的显著优势
大数据·数据库·物联网·时序数据库·iotdb