文章目录
-
- [Mode: standalone](#Mode: standalone)
- 启动失败
Mode: standalone
这通常表示 Zookeeper
配置为单节点模式,而不是集群模式。需要检查 zoo.cfg
文件中的配置,确保包含了所有集群节点的信息。
启动失败
sh
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.5.7/bin/../conf/zoo.cfg
Starting zookeeper ... FAILED TO START
sh
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.5.7/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Error contacting service. It is probably not running.
首先查看 $ZOOKEEPER_HOME/logs
目录下的 .out
后缀文件中报错内容(在 hadoop
系统中,.log
结尾的日志文件通常用于记录应用程序的日志信息,而 .out
结尾的文件则用于存储标准输出和标准错误信息),出现其他的报错问题都可以去 .out
后缀文件里查看报错信息,根据报错信息能更容易找到问题所在,更方便解决问题。
常见的错误如下:
-
数据目录和日志目录 :写绝对路径,不要写相对路径,也不要直接写
$ZOOKEEPER_HOME/tmp/data
,示例shdataDir=/opt/zookeeper-3.5.7/tmp/data
-
服务器地址问题 ,如果这里写的 B 写的是用户名,检查
/etc/hosts
是否配置IP
映射bashserver.A=B:C:D
-
myid 不匹配 : 在每个
Zookeeper
节点的数据目录下的myid
文件,其中包含一个数字,表示该节点在集群中的唯一标识。如果这个数字与zoo.cfg
中上述配置 A 不匹配,可能会导致集群故障。 -
权限问题 : 操作系统权限不足可能导致
Zookeeper
无法启动或运行。需要确保Zookeeper
安装目录具有适当的读写执行rwx
权限。 -
进程冲突 : 如果在启动
Zookeeper
时出现错误信息shalready running as process XXX
表示同一台机器上已经有一个
Zookeeper
进程在运行。可能需要停止现有的进程,或者检查是否有残留的进程占用端口,可以通过查看端口占用情况,如使用netstat -apn | grep 2181
命令,解决端口冲突问题。 -
防火墙未关闭 :防火墙可能会阻止
Zookeeper
集群之间的通信。需要确保防火墙已关闭,或者将Zookeeper
集群的端口添加到防火墙白名单中。例如,如果你使用的是
firewalld
,关闭防火墙示例代码shsystemctl stop firewalld.service # 停止firewall systemctl disable firewalld.service # 禁止firewall开机启动
修改完防火墙配置文件后你需要保存修改并重启防火墙服务,以使更改生效。可以使用以下命令重启防火墙。具体的命令也取决于你使用的防火墙软件
shsystemctl restart firewalld
如果你使用的是
iptables
添加白名单示例代码shiptables -A INPUT -p tcp --dport 2181 -j ACCEPT
-
Java 环境问题 :
Java
环境未正确配置或使用的Java
版本与Zookeeper
不兼容。
解决这些问题通常需要仔细检查配置文件、日志文件和操作系统设置,并根据具体错误信息进行相应的调整。