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

相关推荐
Apache IoTDB2 天前
【应用案例】电价“先知”!IoTDB 结合 AI 能力,实现电价精准预测
人工智能·iotdb
AllData公司负责人2 天前
AllData数据中台通过集成开源项目Apache IOTDB Web相关项目,建设物联网数据库平台
数据仓库·物联网·时序数据库·iotdb·工业物联网·apache iotdb·物联网数据库平台
倔强的石头1063 天前
时序数据库选型指南:可视化与分析协同怎么选?——以 Apache IoTDB + Grafana + 大数据引擎为例
apache·时序数据库·iotdb
wei_shuo3 天前
工业物联网数据基础设施:Apache IoTDB 与 TimechoDB 的云原生与 AI 进化之路
物联网·apache·iotdb
xcLeigh5 天前
IoTDB Java 原生 API 实战:SessionPool 从入门到精通
java·开发语言·数据库·api·iotdb·sessionpool
wei_shuo7 天前
从边缘到云端:国产时序数据库IoTDB与TimechoDB的云原生落地全攻略
云原生·时序数据库·iotdb
xcLeigh7 天前
IoTDB AINode 实战指南:SQL 原生时序 AI 建模,毫秒级预测 / 异常检测落地
人工智能·sql·ai·iotdb·ainode
Hoking8 天前
Apache IoTDB时序数据库容器化单机部署(docker)
时序数据库·iotdb
xcLeigh14 天前
IoTDB Python原生接口全攻略:从基础读写到高级实战
开发语言·数据库·python·api·iotdb·原生接口·读写数据
AllData公司负责人18 天前
高效同步!离线开发平台(DolphinScheduler) 实现Apache IotDB物联网数据同步到 Doris
apache·doris·iotdb