2011-05-05 10 views

Respuesta

1

Si lo hace $HADOOP_HOME/bin/hadoop -job -status <jobid> obtendrá una URL de seguimiento en la salida. Ir a esa URL le dará la página de seguimiento, que tiene el nombre

Job Name: <job name here> 

El comando -status también da un archivo, que también se puede ver desde la URL de seguimiento . En este archivo hay un mapred.job.name que tiene el nombre del trabajo.

No encontré una forma de acceder al nombre del trabajo desde la línea de comando. No quiero decir que no ... pero no lo encontré. :)

La URL y XML archivo de seguimiento son probablemente sus mejores opciones para obtener el nombre del trabajo.

24

He tenido que hacer esto varias veces, así que se me ocurrió la siguiente línea de comando que puedes lanzar en un script en algún lugar y reutilizar. Imprime el jobid seguido del nombre del trabajo.

hadoop job -list | egrep '^job' | awk '{print $1}' | xargs -n 1 -I {} sh -c "hadoop job -status {} | egrep '^tracking' | awk '{print \$3}'" | xargs -n 1 -I{} sh -c "echo -n {} | sed 's/.*jobid=//'; echo -n ' ';curl -s -XGET {} | grep 'Job Name' | sed 's/.* //' | sed 's/<br>//'" 
+4

straight forward –

+0

Bonito comando. Aunque fue un poco secuencial y por lotes para mí. Una mejora extrema de esto sería usar xargs '-P ' indicador max-procs, especialmente con el primer xargs que está haciendo el comando 'hadoop status -job'. Escogí arbitrariamente (en mi caso) para estar cerca del promedio de trabajos suspendidos que tenemos en nuestro cluster hadoop. YMMV. – wisehippy

+0

Parece que el uso de 'hadoop job -list' está en desuso, el reemplazo es' mapred job -list'. – slm

0

Usted puede encontrar la información en JobTracker IU

se puede ver

Jobid 
Priority  
User 
Name of the job 
State of the job whether it succeed or failed 
Start Time 
Finish Time 
Map % Complete 
Reduce % Complete etc 

INFO

3
guión de

Modificación AnthonyF, puede utilizar el siguiente a los hilados:

mapred job -list 2> /dev/null | egrep '^\sjob' | awk '{print $1}' | xargs -n 1 -I {} sh -c "mapred job -status {} 2>/dev/null | egrep 'Job File' | awk '{print \$3}'" | xargs -n 1 -I{} sh -c "hadoop fs -cat {} 2>/dev/null | egrep 'mapreduce.job.name' | sed 's/.*<value>//' | sed 's/<\/value>.*//'" 
-1

escribiendo "jps" en su terminal.

0

Just En caso de que alguien esté interesado en la última consulta para obtener el nombre del trabajo :-). Comando Pirooz modificado -

mapred job -list 2>/dev/null | egrep '^ job' | awk '{print $ 1}' | xargs -n 1 -I {} sh -c "trabajo mapred -status {} 2>/dev/null | egrep 'Archivo de trabajo'" | awk '{print $ 3}' | xargs -n 1 -I {} sh -c "hadoop fs -cat {} 2>/dev/null" | egrep 'mapreduce.job.name' | awk -F "" '{print $ 2}' | awk -F "" '{print $ 1}'

0

que tenía que mirar a través de la historia, por lo que cambió a mapred job -listmapred job -list all ....

acabé añadiendo un -L al comando curl, por lo que el bloque había:

curl -s -L -XGET {} 

Esto permite la redirección, como si el trabajo se retiró y en el historial de trabajos.También encontré que es JobName en el código HTML de la historia, así que cambié el grep:

grep 'Job.*Name' 

Además, por supuesto cambiando hadoop-mapred. Aquí está el comando completo:

mapred job -list all | egrep '^job' | awk '{print $1}' | xargs -n 1 -I {} sh -c "mapred job -status {} | egrep '^tracking' | awk '{print \$3}'" | xargs -n 1 -I{} sh -c "echo -n {} | sed 's/.*jobid=//'; echo -n ' ';curl -s -L -XGET {} | grep 'Job.*Name' | sed 's/.* //' | sed 's/<br>//'" 

(También ha cambiado alrededor de la primera grep por lo que sólo estaba mirando a un determinado nombre de usuario .... YMMV)

6

Si utiliza Hadoop HILO no utilizan mapred job -list (o su versión obsoleta hadoop job -list) acaba de hacer

yarn application -appStates RUNNING -list 

Eso también imprime el nombre de la aplicación/trabajo. Para las aplicaciones mapreduce, puede obtener el JobId correspondiente reemplazando el prefijo application del Application-Id con job.

+0

Protip: me gusta utilizar esta línea (en un script) para obtener un resumen actualizado de trabajos en ejecución en la consola 'watch -n5" aplicación de hilos -appStates RUNNING -list | sed '1d' | cut -f1,2,4 , 8 | column -ts $ '\ t' "' –

Cuestiones relacionadas