我在启动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
你能帮忙吗?
答案 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'。)
(许多人误解的是,大多数必要的不是已启动服务器中的大多数,而是配置中服务器中的大多数。)