spark - cómo matar a los trabajos de hadoop
hadoop youtube (5)
Dependiendo de la versión, hazlo:
versión <2.3.0
Mata a un trabajo hadoop:
hadoop job -kill $jobId
Puede obtener una lista de todas las tareas de JobId:
hadoop job -list
versión> = 2.3.0
Mata a un trabajo hadoop:
yarn application -kill $ApplicationId
Puede obtener una lista de todas las acciones de ApplicationId:
yarn application -list
Quiero matar todas mis tareas de hadoop automáticamente cuando mi código encuentre una excepción no controlada. Me pregunto cuál es la mejor práctica para hacerlo?
Gracias
El uso del comando siguiente se deprecia
hadoop job -list
hadoop job -kill $jobId
Considere usar
mapred job -list
mapred job -kill $jobId
Simplemente mate forzosamente la identificación del proceso, el trabajo de hadoop también se eliminará automáticamente. Use este comando:
kill -9 <process_id>
por ejemplo: nº de ID de proceso: 4040 namenode
username@hostname:~$ kill -9 4040
Una excepción no controlada (suponiendo que sea repetible, como datos erróneos en lugar de leer los errores de un nodo de datos en particular) eventualmente falla el trabajo.
Puede configurar la cantidad máxima de veces que un mapa en particular o una tarea de reducción puede fallar antes de que todo el trabajo falle a través de las siguientes propiedades:
-
mapred.map.max.attempts
: el número máximo de intentos por tarea de mapa. En otras palabras, Framework tratará de ejecutar una tarea de mapa tantas veces antes de darse por vencido. -
mapred.reduce.max.attempts
- Igual que el anterior, pero para reducir tareas
Si quiere suspender el trabajo en la primera falla, establezca este valor de 4 a 1 por defecto.
list
ejecución para mostrar todos los trabajos, luego use el ID de tarea / aplicación en el comando apropiado.
Mata los trabajos mapred:
mapred job -list
mapred job -kill <jobId>
Mata a los trabajos de hilo:
yarn application -list
yarn application -kill <ApplicationId>