ZooKeeper没有开始

时间:2016-03-17 07:54:00

标签: apache-zookeeper

我在启动zookeeper时遇到问题。 zoo.cfg文件是

# The number of milliseconds of each tick
tickTime=2000
dataDir=/Users/admin/Documents/delete/zookeeper/zookeeper-3.4.6/zookeeperdata/1
clientPort=2181
initLimit=5
syncLimit=2
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890

启动zookeeper时我没有看到任何错误:

nohup ./bin/zkServer.sh start zoo.cfg
JMX enabled by default
Using config: /Users/admin/Documents/delete/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

还可以看到新的流程ID:

cat /Users/admin/Documents/delete/zookeeper/zookeeper-3.4.6/zookeeperdata/1/zookeeper_server.pid 
14120

但是在检查过程的状态时,得到以下错误:

bin/zkServer.sh status
JMX enabled by default
Using config: /Users/admin/Documents/delete/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg
Error contacting service. It is probably not running
你能帮忙吗?

1 个答案:

答案 0 :(得分:0)

server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890

这意味着您正在设置ZooKeeper集合,而zk-ensamble的规则之一是服务器需要在允许它们回答请求之前形成多数。这意味着zk-server在形成多数之前不会运行。

要从status获得信息性的答案,您需要为3个服务器集合运行至少2个服务器中的2个。从配置中删除这些行或启动另一台服务器。 (并确保服务器具有不同的'dataDir'和'myid'。)

(许多人误解的是,大多数必要的不是已启动服务器中的大多数,而是配置中服务器中的大多数。)