解决时间:2020年12月24日14点26分
一、报错情况与内容(图中选白部分):
在这里插入图片描述

root@wxb02:/usr/hadoop/zookeeper-3.4.13/bin# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/hadoop/zookeeper-3.4.13/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

二、解决方法
别人的方法:

1.首先要保证三台机器防火墙都关闭。
关闭防火墙的命令如下。
sudo ufw disable
查看防火墙状态,状态为“不活动”,说明防火墙已经关闭。
sudo ufw status
2.创建数据目录,zoo.cfg配置文件里dataDir指定的那个目录下创建myid文件,并且指定id,改id为你zoo.cfg文件中server.1=ip:2888:3888中的1.只要在myid头部写入1即可.同理其它两台机器的id对应上

自己的方法:

本来是server.1=主机名:28883888的地方
改为: server.1=主机ip:28883888       三个server和三个主机的zoo.cfg都要改   
此外,还要保证这些语句之后没有多余的“空格”   最下面另附一个别人的图作为对比

自己的图
在这里插入图片描述

三、错误总结

个人认为是因为再ip映射的那个文件夹(/etc/hosts)里还有一些127.0.1.1 主机名; 127.0.0.1 localhost这两个映射有关,当然这只是一台机器,但是现在的集群装了ssh协议,别的主机的/etc/hosts文件里也有这两个语句,所以可能导致机器无法根据主机名来“准确”识别。这时候用IP地址来做唯一的身份验证就很合理。

如果文章对你有帮助,麻烦顺手点个赞支持一下吧!!!

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐