Zookeeper - 三个节点,只有错误

时间:2012-07-16 05:22:24

标签: apache-zookeeper

我有三个zookeeper节点。所有港口都是开放的。 IP地址是正确的。下面是我的配置文件。所有由chef引导的节点都具有相同的安装和配置文件。

# The number of milliseconds of each tick
tickTime=3000
# 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
# Place the dataLogDir to a separate physical disc for better performance
# dataLogDir=/disk2/zookeeper

# the port at which the clients will connect
clientPort=2181

server.1=111.111.111:2888:3888
server.2=111.111.112:2888:3888
server.3=111.111.113:2888:3888

这是其中一个节点的错误。所以...我对如何得到错误感到困惑,因为配置相当香草。所有三个节点都在做同样的事情。

2012-07-16 05:16:57,558 - INFO  [main:QuorumPeerConfig@90] - Reading configuration from: /etc/zookeeper/conf/zoo.cfg
2012-07-16 05:16:57,567 - INFO  [main:QuorumPeerConfig@310] - Defaulting to majority quorums
2012-07-16 05:16:57,572 - FATAL [main:QuorumPeerMain@83] - Invalid config, exiting abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /etc/zookeeper/conf/zoo.cfg
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:110)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:99)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:76)
Caused by: java.lang.IllegalArgumentException: serverid replace this text with the cluster-unique zookeeper's instance id (1-255) is not a number
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:333)
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:106)
    ... 2 more

2 个答案:

答案 0 :(得分:39)

您需要创建一个名为myid的文件并将其放入zookeeper var目录中,每个服务器一个,包含一行只包含该计算机id的文本。所以服务器1的myid将包含文本“1”而没有别的。 id在整体中必须是唯一的,并且应该具有1到255之间的值。

http://zookeeper.apache.org/doc/r3.3.3/zookeeperAdmin.html#sc_zkMulitServerSetup

了解详情

答案 1 :(得分:4)

server.1=111.111.111:2888:3888
server.2=111.111.112:2888:3888
server.3=111.111.113:2888:3888

您的服务器和IP

然后在每个节点上创建myid文件,其中111.111.111中的值为1,111.111.111.112中的值为2,目录下的111.111.111.113服务器中为3;(dataDir = / var / lib / zookeeper)

如果您放置值“1”myid文件,如果使用任何扩展名创建了myid文件,您将获得数字格式异常和“无效配置,异常退出”。

因此,只需创建没有任何扩展名的myid文件,并在没有双引号的相应服务器中放置整数值1,2,3