文章目录
- Mode: standalone
- 启动失败
Mode: standalone
这通常表示 Zookeeper 配置为单节点模式,而不是集群模式。需要检查 zoo.cfg 文件中的配置,确保包含了所有集群节点的信息。
启动失败
/usr/bin/java ZooKeeper JMX enabled by default Using config: /opt/zookeeper-3.5.7/bin/../conf/zoo.cfg Starting zookeeper ... FAILED TO START
/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,示例
dataDir=/opt/zookeeper-3.5.7/tmp/data
-
服务器地址问题,如果这里写的 B 写的是用户名,检查 /etc/hosts 是否配置 IP 映射
server.A=B:C:D
-
myid 不匹配: 在每个 Zookeeper 节点的数据目录下的 myid 文件,其中包含一个数字,表示该节点在集群中的唯一标识。如果这个数字与 zoo.cfg 中上述配置 A 不匹配,可能会导致集群故障。
-
权限问题: 操作系统权限不足可能导致 Zookeeper 无法启动或运行。需要确保 Zookeeper 安装目录具有适当的读写执行 rwx 权限。
-
进程冲突: 如果在启动 Zookeeper 时出现错误信息
already running as process XXX
表示同一台机器上已经有一个 Zookeeper 进程在运行。可能需要停止现有的进程,或者检查是否有残留的进程占用端口,可以通过查看端口占用情况,如使用 netstat -apn | grep 2181 命令,解决端口冲突问题。
-
防火墙未关闭:防火墙可能会阻止 Zookeeper 集群之间的通信。需要确保防火墙已关闭,或者将 Zookeeper 集群的端口添加到防火墙白名单中。
例如,如果你使用的是firewalld,关闭防火墙示例代码
systemctl stop firewalld.service # 停止firewall systemctl disable firewalld.service # 禁止firewall开机启动
修改完防火墙配置文件后你需要保存修改并重启防火墙服务,以使更改生效。可以使用以下命令重启防火墙。具体的命令也取决于你使用的防火墙软件
systemctl restart firewalld
如果你使用的是 iptables 添加白名单示例代码
iptables -A INPUT -p tcp --dport 2181 -j ACCEPT
-
Java 环境问题:Java 环境未正确配置或使用的 Java 版本与 Zookeeper 不兼容。
解决这些问题通常需要仔细检查配置文件、日志文件和操作系统设置,并根据具体错误信息进行相应的调整。
-
猜你喜欢
网友评论
- 搜索
- 最新文章
- 热门文章