练习hadoop搭建时,在三台虚拟机上分别启动zookeeper时,在第一台和第二台启动成功,在第三台启动失败,这说明配置文件没有问题,应该是主机的问题。
下图是启动zookeeper显示的错误,并且jps后,未出现QuorumPeerMain
输入如下语句,可显示具体的错误原因
/opt/modules/apache-zookeeper-3.6.0-bin/bin/zkServer.sh start-foreground
这应该是端口被占用了的原因,2181是zookeeper的默认端口
如果是非root用户,先转到root用户:
[hadoop@host3 apache-zookeeper-3.6.0-bin]$ su root
Password:
[root@host3 apache-zookeeper-3.6.0-bin]# netstat -lnp|grep 2181
tcp6 0 0 :::2181 :::* LISTEN 1164/java
发现2181端口被占用,则杀死该进程
[root@host3 apache-zookeeper-3.6.0-bin]# kill -9 1164
再次查看该端口发先未被占用了
回到原来的用户,成功启动zookeeper:
[root@host3 apache-zookeeper-3.6.0-bin]# su hadoop
[hadoop@host3 apache-zookeeper-3.6.0-bin]$ /opt/modules/apache-zookeeper-3.6.0-bin/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/modules/apache-zookeeper-3.6.0-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[hadoop@host3 apache-zookeeper-3.6.0-bin]$ jps
2194 Jps
2153 QuorumPeerMain