java—无法让zookeeper集群工作,选举永远不会发生

pw9qyyiw  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(308)

这是我第一次尝试zookeeper,虽然我可以很容易地将它设置为在一台机器上运行,但让它在两台机器的集群中运行根本不起作用。我想这可能是我的配置有问题,但看起来我找不到。
以下是服务器1的日志
以下是服务器2的日志
两台服务器的配置如下:


# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

dataDir=/var/lib/zookeeper

# the port at which the clients will connect

clientPort=2181
server.1=redis1:2888:3888
server.2=redis2:2888:3888

关于这个问题有什么想法吗?
我在运行openjdk7的ubuntulinux中运行zookeeper 3.4.5。尝试在openjdk6上运行,但仍然遇到相同的问题。

2mbi3lxu

2mbi3lxu1#

问题是我有偶数个节点,你需要奇数个节点才能运行选举(显然)。文档应该更新以涵盖这一点,因为基本示例正好显示了配置的2台服务器。

ui7jx7zq

ui7jx7zq2#

你的配置无效,特别是

server.1=redis1:2888:3888
server.2=redis1:2888:3888

如果在同一台主机上运行两个示例,则需要为每个示例提供不同的端口号,最好是

server.1=localhost:3181:4181
server.2=localhost:3182:4182

请注意,您应该有相同的服务器。#为两个服务器的配置文件配置。
另一种选择是使用zkconf之类的工具为您生成所有这些:http://bit.ly/aqp9yi

相关问题