Quiero matar todos mis trabajos de hadoop automáticamente cuando mi código encuentra una excepción no controlada. Me pregunto cuál es la mejor práctica para hacerlo?cómo matar trabajos de hadoop
Gracias
Quiero matar todos mis trabajos de hadoop automáticamente cuando mi código encuentra una excepción no controlada. Me pregunto cuál es la mejor práctica para hacerlo?cómo matar trabajos de hadoop
Gracias
una excepción no controlada se (asumiendo que es repetible como datos erróneos en oposición a los errores de lectura de datos de un nodo particular) fallarán en el futuro el trabajo de todos modos.
puede configurar el número máximo de veces que un mapa en particular o reducir la tarea puede fallar antes de que falle todo el trabajo a través de las siguientes propiedades:
mapred.map.max.attempts
- El número máximo de intentos por tarea 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 las tareasSi quiere dejar el trabajo a cabo en el primer fallo, establecer este valor de su valor predeterminado de 4 a 1.
Dependiendo la versión, hacer:
versión < 2.3.0
matar a un trabajo hadoop:
hadoop job -kill $jobId
Usted puede obtener una lista de hacer todo de jobId:
hadoop job -list
versión
> = 2.3.0
matar a un trabajo hadoop:
yarn application -kill $ApplicationId
Puede obtener una lista de todas las ApplicationId's haciendo:
yarn application -list
También trabajo mapred -kill $ jobId –
Simplemente mate forzosamente la identificación del proceso, el trabajo de hadoop también se eliminará automáticamente. Utilice este comando:
kill -9 <process_id>
eg: process ID no: 4040 namenode
[email protected]:~$ kill -9 4040
El uso de comandos folloing es amortizado
hadoop job -list
hadoop job -kill $jobId
considerar el uso de
mapred job -list
mapred job -kill $jobId
No funciona y da como resultado el siguiente error: Excepción en el subproceso "principal" java.lang.IllegalArgumentException: cadena de Id. De trabajo: application_1470941878165_0001 no está formado correctamente – tribbloid
Run list
para mostrar todos los puestos de trabajo, a continuación, utilizar el ID de trabajo/ID de aplicación en la c apropiada ommand
Kill mapred empleos:
mapred job -list
mapred job -kill <jobId>
Kill trabajos de hilo:
yarn application -list
yarn application -kill <ApplicationId>
Pero esto también hará un trabajo a fallar si un nodo muere y sus tareas fallar, incluso si no hay ninguna excepción lanzada , ¿derecho? Sin embargo, creo que esta es de hecho la solución más cercana a lo que quiere el OP. – vefthym