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

时间:2017-07-11 10:38:54

标签: hadoop centos

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

但是我希望自动化zookeeper启动过程和shell脚本中的事件我们必须首先停止防火墙,以便让其他仲裁元素能够联系当前的zookeeper元素

我在/etc/rc.d/rc.local

中编写了以下脚本
hostname jn1

systemctl stop firewalld

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

source $ZOOKEEPER/bin/zkEnv.sh

daemon --user root $ZOOKEEPER/bin/zkServer.sh start

但我遇到了iam发出命令的问题

systemctl stop firewalld 在rc.local

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

ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.9/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

但如果我用脚本执行相同的命令,我的意思是在我的主机启动后作为正常过程

systemctl status firewalld

zkServer start 

没有问题,zkstatus显示其模式

我注意到在主机启动后执行rc.local脚本和正常命令之间zookeeper.out日志的区别

不同之处在于正常命令执行

中读取服务器环境

将rc.local脚本中的防火墙停止到服务器环境以及如何处理它可能会产生什么影响 ?

1 个答案:

答案 0 :(得分:0)

我对停止和重启防火墙场景感到头疼

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

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

systemctl disable firewalld

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

因此防火墙在任何启动时都无法再次运行