Skip to content

分布式 FAQ #2270

@OneSizeFitsQuorum

Description

@OneSizeFitsQuorum

1. cli 连接分布式写入数据消息不同步,只能到部分节点查询到数据;cli 连接分布式写入数据不支持自动创建 schema。

  • 原因:分布式 IoTDB 是基于单机版 IoTDB 上层设计开发,(为调试方便)启动时目前默认也启动单机的服务。分布式对外开放端口为 55560,(为调试方便)同时对外开放端口为 6667 ,使用 cli 不指定参数默认会连接单机端口,从而不经过上层分布式的逻辑,因此需要显式指定 cli 去连接分布式端口。即 ./start-cli.sh -p 55560。之后会将分布式的服务端口调整为 6667 并关闭单机版的服务端口,如此即可 ./start-cli.sh 直连分布式了。

  • 总结:显式指定 cli 去连接分布式端口。即 ./start-cli.sh -p 55560

  • 更新:从即日起,分布式的端口已经和单机兼容,即皆使用 6667 端口~

2. 如何启动分布式 IoTDB

  • 概述:首先使用 mvn clean package -pl cluster -am -DskipTests 编译分布式模块,然后开始服务端部署或本地部署。以三节点集群为例,对于服务端部署,首先保证服务器的 6667, 9003, 9004, 40010, 40011 端口开放,然后分别将包传到对应的服务器上并配置不同节点 iotdb-cluster.properties 配置文件中的 seednodes 和 cluster_rpc_ip 参数,前者包含所有的启动节点并且全局统一,后者绑定自己的公网或私网 ip。接着在 3 个节点上分别运行 start-node.sh 即可。对于本地部署,可以参考此示例

  • 总结:本地部署处理好端口冲突,服务器部署处理好服务器 ip。可以参考此示例

3. benchmark 无法连接分布式 IoTDB

  • 原因:使用 support_cluster 分支;IoTDB 仓库更新到了 0.12.0 版本,而 benchmark 暂没有同步更新,需要手动将 pom 文件中有关 iotdb 的 session 和 jdbc 模块到升级到 0.12.0 版本。

  • 总结:使用 support_cluster 分支;升级 pom 版本,再执行。

4. 云服务器上无法启动分布式 IoTDB;集群之间无法通信。

  • 原因:云服务器上有时会出现启动不了分布式 IoTDB 的问题,可能是对公网 ip 进行了限制无法绑定,建议在云服务器上配置时 ip 均使用内网 ip;此外云服务器上时常有防火墙或安全组等措施会限制流量端口,可以用 python 启动 http server 并用外网访问查看端口是否开放,若不能则需要到控制台去调整安全组。

  • 总结:使用内网 ip;检查防火墙,安全组。

5. 三节点分布式 IoTDB 中报告的 leader 不一致且存在多个,lastHeartBeat 一直增加。

  • 原因:分布式 IoTDB 是基于 multi-raft 思路实现的,在目前的架构下 3 个节点共有 3 个 raft 组,所以存在三个 leader 是正确;lastHeatBeat 是指 Leader 上次给其发送心跳的时间,由于心跳时间默认为 1s,所以 character 是 follower 的 lastHeatBeat 都在 1s 内,对于 character 是 leader 的 raft 实例,由于它自身为 leader, 不会有节点向其发送心跳,所以其会一直增加。

image

  • 总结:设计如此,正常现象。

6. 出现不属于 seednodes 的节点尝试加入集群,集群无法正常对外服务。

  • 原因:可能是之前启动的分布式 IoTDB 进程未被杀掉,比如之前是四节点部署改为了三节点部署。忘记杀掉不再使用节点的分布式 IoTDB 进程会导致三节点 IoTDB 始终被骚扰,拒绝服务。

  • 总结:清理环境,杀掉不该有的进程。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions