集群服务FAQ

节点启动常见问题

节点无法启动 报500ms

clock synchronization error: this node is more than 500ms away from at least half of the known nodes

解决方案: 这个错误表明一个节点服务关闭了,因为检测到它的时钟与集群中至少一半的其他节点不同步,误差是允许的最大偏移量(默认为500ms)。为了保持数据一致性,hubble 数据库需要适当的时钟同步级别,因此通过这种方式关闭节点可以避免出现一致性异常的风险。检查服务器时间同步工具,保证服务器之间时钟同步一致。

节点宕机报 open file descriptor limit

open file descriptor limit of <number> is under the minimum required <number>

解决方案: hubble 数据库打开大量的文件描述符,通常比默认情况下可用的还要多。信息表明hubble数据库使用的文件描述符超过了服务器中给定的范围。需要修改/etc/security/limits.d/hubble.conf中的文件。如果修好后还出现当前错误,请检查/etc/systemd/system/hubble.service 中的 LimitNOFILE=1000000的值

节点启动报 bind: address already in use

ERROR: hubble server exited with error: consider changing the port via --listen-addr: listen tcp 127.0.0.1:15432: bind: address already in use

解决方案: 节点服务器端口被占用,关闭被占用的端口进程或者重新指定--listen-addr的端口

节点加入到现有的 hubble集群Store directory already exists

no resolvers found; use --join to specify a connected node

node belongs to cluster {"cluster hash"} but is attempting to connect to a gossip network for cluster {"another cluster hash"}

解决方案: 启动节点时,选择存储数据的目录还包含标识数据来自哪个集群的元数据。当您已经启动了服务器上的一个节点,退出了 hubble 进程,然后试图加入另一个集群时,这会导致冲突。因为现有目录的集群 ID 与新的集群 ID 不匹配,节点无法加入它。

解决办法 删除现有hubble数据库目录,重新启动。

多个查询同时进行,防止死锁

解决方案: 需要将CLUSTER SETTING sql.distsql.acquire_vec_fds.max_retries设置为0

set   CLUSTER SETTING sql.distsql.acquire_vec_fds.max_retries=0;


show  CLUSTER SETTING sql.distsql.acquire_vec_fds.max_retries;


  sql.distsql.acquire_vec_fds.max_retries
-------------------------------------------
                                        0