当防火墙在 rc.local 脚本处停止时,zookeeper 自动启动操作失败

当防火墙在 rc.local 脚本处停止时,zookeeper 自动启动操作失败

我在 centos 7 上使用 Hadoop apache 2.7.1,我的集群是 ha 集群,我使用 zookeeper quorum 进行自动故障转移

但我想自动化 zookeeper 的启动过程,当然在 shell 脚本中我们必须先停止防火墙,以便其他仲裁元素能够联系当前的 zookeeper 元素

我在 /etc/rc.d/rc.local 中编写以下脚本

主机名 jn1

systemctl stopfirewalld(停止防火墙)

ZOOKEEPER ='/usr/local/zookeeper-3.4.9/'源/etc/rc.d/init.d/functions

源$ZOOKEEPER/bin/zkEnv.sh

守护进程--用户root$ZOOKEEPER/bin/zkServer.sh启动

但我面临的问题是,当我发出命令时

systemctl 在 rc.local 中停止firewalld

并在主机启动后发出 zkServer 状态,我收到错误

ZooKeeper JMX 默认启用 使用配置:/usr/local/zookeeper-3.4.9/bin/../conf/zoo.cfg 联系服务时出错。它可能没有运行。

但是如果我不使用脚本执行相同的命令,这意味着我的主机启动后会像正常过程一样

systemctl 状态防火墙

zkServer启动

没有问题,zkstatus 显示其模式

我注意到在主机启动后执行 rc.local 脚本和执行正常命令时 zookeeper.out 日志中的差异

不同之处在于在正常命令中读取服务器环境执行

停止 rc.local 脚本的防火墙对服务器环境有何影响以及如何处理?

答案1

我对停止和重新启动防火墙的情况很头疼

我发现在 rc.local 停止防火墙是假停止

因为我根本不想让防火墙工作,所以我最终得到了以下解决方案

systemctl disablefirewalld(系统防火墙禁用)

https://www.rootusers.com/how-to-disable-the-firewall-in-centos-7-linux/

因此防火墙在任何启动时都不会再次工作

相关内容