解决时间: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=主机名:2888:3888的地方
改为: server.1=主机ip:2888:3888 三个server和三个主机的zoo.cfg都要改
此外,还要保证这些语句之后没有多余的“空格” 最下面另附一个别人的图作为对比
三、错误总结
个人认为是因为再ip映射的那个文件夹(/etc/hosts)里还有一些127.0.1.1 主机名; 127.0.0.1 localhost这两个映射有关,当然这只是一台机器,但是现在的集群装了ssh协议,别的主机的/etc/hosts文件里也有这两个语句,所以可能导致机器无法根据主机名来“准确”识别。这时候用IP地址来做唯一的身份验证就很合理。
如果文章对你有帮助,麻烦顺手点个赞支持一下吧!!!