在学习 zookeeper 集群安装时,使用 /export/server/zookeeper/bin/zkServer.sh start 命令启动 zk 服务,打印信息如下:
(base) [root@node3 ~]# /export/server/zookeeper/bin/zkServer.sh start JMX enabled by default Using config: /export/server/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
但使用 /export/server/zookeeper/bin/zkServer.sh status 查看启动状态,报错信息如下:
(base) [root@node1 server]# /export/server/zookeeper/bin/zkServer.sh status JMX enabled by default Using config: /export/server/zookeeper/bin/../conf/zoo.cfg Error contacting service. It is probably not running.
通过 jps 查看 zk 服务并未启动成功:
(base) [root@node1 server]# jps 2224 NameNode 79457 Jps 3846 ResourceManager 2567 DataNode 4167 NodeManager问题解决
使用命令 /export/server/zookeeper/bin/zkServer.sh start-foreground 启动zookeeper可以查看错误信息
(base) [root@node1 bin]# ./zkServer.sh start-foreground
JMX enabled by default
Using config: /export/server/zookeeper/bin/../conf/zoo.cfg
2022-02-02 19:13:33,730 [myid:] - INFO [main:QuorumPeerConfig@103] - Reading configuration from: /export/server/zookeeper/bin/../conf/zoo.cfg
2022-02-02 19:13:33,740 [myid:] - ERROR [main:QuorumPeerMain@85] - Invalid config, exiting abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /export/server/zookeeper/bin/../conf/zoo.cfg
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:123)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:101)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)
Caused by: java.lang.NumberFormatException: For input string: "3 # ä¿ "
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:176)
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:119)
... 2 more
Invalid config, exiting abnormally
结果发现是 /export/server/zookeeper/conf/zoo.cfg 中存在汉字,导致的编码问题,将 # 保留多少个快照 删除即可。
(base) [root@node1 conf]# cat zoo.cfg # 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. # do not use /tmp for storage, /tmp here is just # example sakes. # zookeeper 的数据存放目录 dataDir=/export/server/zookeeper/zkdatas # the port at which the clients will connect clientPort=2181 # the maximum number of client connections. # increase this if you need to handle more clients #maxClientCnxns=60 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir autopurge.snapRetainCount=3 # 保留多少个快照 # Purge task interval in hours # Set to "0" to disable auto purge feature # 日志多少小时清理一次 autopurge.purgeInterval=1 # 集群中服务器地址 server.1=node1:2888:3888 server.2=node2:2888:3888 server.3=node3:2888:3888
然后再启动,尝试查看 zk 状态,无问题:
(base) [root@node3 ~]# /export/server/zookeeper/bin/zkServer.sh status JMX enabled by default Using config: /export/server/zookeeper/bin/../conf/zoo.cfg Mode: leader
参考链接:https://blog.csdn.net/weiyongle1996/article/details/73733228



