iam在centos 7上使用hadoop apache 2.7.1,我的集群是ha集群,iam使用zookeeper quorum进行自动故障转移
但我想要自动化zookeeper启动过程,并在shell脚本中,我们必须先停止防火墙,以便让其他法定人员元素能够联系当前的zookeeper元素
iam在/etc/rc.d/rc.local中写入以下脚本
主机名jn1
systemctl停止firewalld
ZOOKEEPER ='/ usr / local / zookeeper-3.4.9 /'source /etc/rc.d/init.d/functions
源$ ZOOKEEPER / bin / zkEnv.sh
守护进程 – 用户root $ ZOOKEEPER / bin / zkServer.sh启动
但我面临的问题是,当我发布命令
systemctl在rc.local中停止firewalld
并在主机启动后发出zkServer状态iam得到错误
默认情况下启用ZooKeeper JMX使用config:/usr/local/zookeeper-3.4.9/bin/../conf/zoo.cfg联系服务时出错。 它可能没有运行。
但是如果我执行了一个脚本,我的意思是我的主机启动后正常的过程相同的命令
systemctl status firewalld
zkServer启动
没有问题,zkstatus显示其模式
我已经注意到在主机启动之后执行rc.local脚本和正常命令之间的zookeeper.out日志的区别
与正常命令执行时读取服务器环境不同
在rc.local脚本中停止服务器环境的防火墙的效果以及如何处理?
我有关于停止和重新启动防火墙情况的abig头痛
我发现在rc.local停止防火墙是一个假的停止
所以,因为不想防火墙工作,我最终以下面的解决scheme
systemctl禁用firewalld
https://www.rootusers.com/how-to-disable-the-firewall-in-centos-7-linux/
所以防火墙在任何启动时都不会再工作