错误展示:
./zkServer.sh status
JMX enabled by default
Using config: /home/hadoop/zookeeper-3.4.5-cdh5.5.2/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
./zkServer.sh restart
JMX enabled by default
Using config: /home/hadoop/zookeeper-3.4.5-cdh5.5.2/bin/../conf/zoo.cfg
JMX enabled by default
Using config: /home/hadoop/zookeeper-3.4.5-cdh5.5.2/bin/../conf/zoo.cfg
Stopping zookeeper ... no zookeeper to stop (could not find file /tmp/zookeeper
/home/hadoop/zookeeper-3.4.5-cdh5.5.2/data/zookeeper_server.pid)
JMX enabled by default
Using config: /home/hadoop/zookeeper-3.4.5-cdh5.5.2/bin/../conf/zoo.cfg
Starting zookeeper ... ./zkServer.sh: line 120: [: /tmp/zookeeper: binary operator expected
STARTED
cat zookeeper.out
2018-06-18 20:48:43,134 [myid:1] - ERROR [main:QuorumPeerMain@94] - Unexpected exception, exiting abnormally
java.net.BindException: Address already in use
说明2181端口被占用。
答题解决方案套路:
1,查看是否有QuorumPeerMain进程,
2通过netstat -nltp | grep 2181检查是否已被占用,如果被占用,kill pid
3/data/myid 必须是有顺序的,比如有三台机器,必须按1,2,3.
4启动顺序必须安myid的顺序启动
这样解决之后zookeeper就能正常启动了。
jps
QuorumPeerMain
QuorumPeerMain
QuorumPeerMain
./zkServer.sh status
Mode: follower
Mode: leader
Mode: follower