Я использую hadoop apache 2.7.1 на centos 7, а мой кластер - это кластер, а я использую кворум zookeeper для автоматического переключения при отказе
но я хочу автоматизировать процесс запуска zookeeper и, конечно, в сценарии оболочки мы должны сначала остановить брандмауэр, чтобы другие элементы кворума могли связаться с текущим элементом zookeeper
Я пишу следующий скрипт в /etc/rc.d/rc.local
имя хоста jn1
systemctl остановить firewalld
ZOOKEEPER = '/ usr / local / zookeeper-3.4.9 /' источник /etc/rc.d/init.d/functions
источник $ ZOOKEEPER / bin / zkEnv.sh
daemon --user root $ ZOOKEEPER / bin / zkServer.sh start
но я столкнулся с проблемой, что когда я выдаю команду
systemctl остановить firewalld в rc.local
и выдача статуса zkServer после загрузки хоста, я получаю сообщение об ошибке
ZooKeeper JMX включен по умолчанию. Использование config: /usr/local/zookeeper-3.4.9/bin/../conf/zoo.cfg Ошибка при обращении в службу поддержки. Наверное, не работает.
но если я выполняю те же команды без сценария, я имею в виду, что мой хост загружается как обычный процесс
systemctl статус firewalld
zkServer start
нет проблем и zkstatus показывает свой режим
Я заметил разницу в журнале zookeeper.out между выполнением сценария rc.local и обычными командами после загрузки хоста
и разница заключается в чтении серверных сред при выполнении обычных команд
каков может быть эффект остановки брандмауэра на сценарии rc.local для серверной среды и как с этим справиться?
У меня сильная головная боль по поводу остановки и перезапуска сценариев брандмауэра
и я обнаружил, что остановка брандмауэра на rc.local - это поддельная остановка
так как я не хочу, чтобы брандмауэр вообще работал, я пришел к следующему решению
systemctl отключить firewalld
https://www.rootusers.com/how-to-disable-the-firewall-in-centos-7-linux/
так что брандмауэр больше не будет работать при любой загрузке