1 votes

Comment créer un job Hadoop Upstart qui réapparaît ?

Vous pouvez démarrer une instance de nodemanager en exécutant la commande suivante yarn-daemon.sh start nodemanager . Si vous en faites un métier d'appoint, vous aurez deux problèmes :

  1. En yarn-daemon.sh script sera exécuté constamment puisque respawn vérifie si le processus est mort, et que le script de yarn-daemon.sh meurt après le démarrage de yarn.
  2. service nodemanager stop ne fait rien car upstart pense que le processus est déjà arrêté.

Comment créer un service upstart qui redémarre yarn (ou un autre daemon hadoop) après un crash ?

1voto

Merlijn Sebrechts Points 6519

Le code ci-dessous montre le fichier de configuration du service upstart /etc/init/nodemanager.conf . Vous exécutez le yarn-daemon.sh start nodemanager script comme crochet de pré-démarrage, et yarn-daemon.sh stop nodemanager comme crochet post-arrêt. Cela permet de démarrer l'instance de nodemanager.

Le script vérifie si nodemanager est en place. Si c'est le cas, le script s'arrête. Cela signale à upstart que le service s'est arrêté et qu'il doit être redémarré.

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X