我在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脚本中的防火墙停止到服务器环境以及如何处理它可能会产生什么影响 ?
答案 0 :(得分:0)
我对停止和重启防火墙场景感到头疼
我发现在rc.local停止防火墙是假的停止
所以因为我根本不想让防火墙工作,所以我最终得到了以下解决方案
systemctl disable firewalld
https://www.rootusers.com/how-to-disable-the-firewall-in-centos-7-linux/
因此防火墙在任何启动时都无法再次运行