Как сделать возрождающуюся работу Hadoop Upstart?

Вы можете запустить экземпляр nodemanager, запустив yarn-daemon.sh start nodemanager. Если вы выполняете задание upstart, если это так, у вас есть две проблемы:

  1. Сценарий yarn-daemon.sh будет выполняться постоянно, так как респаун проверяет, не завершился ли процесс, и сценарий yarn-daemon.sh умирает после запуска пряжи.
  2. service nodemanager stop команда ничего не делает, потому что выскочка думает, что процесс уже остановлен.

Как я могу сделать выскочку службы, которая перезапускает пряжу (или другой демон hadoop) после сбоя?

1
задан 24 April 2015 в 12:53

1 ответ

Код ниже показывает новомодный сервисный конфигурационный файл /etc/init/nodemanager.conf. Вы выполняетесь yarn-daemon.sh start nodemanager сценарий, как предварительно запускают рычаг, и yarn-daemon.sh stop nodemanager как рычаг постостановки. Это запускает фактический nodemanager экземпляр.

сценарий проверяет, произошел ли nodemanager. Если nodemanager снижается, выходы сценария. Это сигнализирует выскочке, по которой сервис спустился и должен быть перезапущен.

description "nodemanager"

start on startup
stop on shutdown

setuid hduser

respawn

# actually start nodemanager
pre-start exec opt/hadoop/current/sbin/yarn-daemon.sh start nodemanager

#
# upstart executes this script. If this script exits, upstart respawns the service
# cannot just excecute *-daemon.sh here, because the actual daemon script excecutes after start
#   and upstart thinks service is stopped so respawns *-daemon.sh constantly.
#
script
  while jps | grep -q NodeManager; do
    sleep 5
  done
end script

post-stop exec /opt/hadoop/current/sbin/yarn-daemon.sh stop nodemanager
1
ответ дан 24 April 2015 в 22:53

Другие вопросы по тегам:

Похожие вопросы: