当前位置:  开发笔记 > 大数据 > 正文

如何获取当前正在运行的hadoop作业的名称?

如何解决《如何获取当前正在运行的hadoop作业的名称?》经验,为你挑选了2个好方法。

我需要获取当前正在运行的作业名称列表,但是hadoop -job list给我一份jobID列表.

有没有办法获得正在运行的工作的名称?

有没有办法从jobID获取作业名称?

AnthonyF.. 26

我必须多次这样做,所以我想出了以下命令行,你可以在某个地方放入一个脚本并重用.它打印jobid,后跟作业名称.

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/
//'"

直截了当 (4认同)


David Ongaro.. 8

如果您使用Hadoop YARN请勿使用mapred job -list(或其弃用版本hadoop job -list)

yarn application -appStates RUNNING -list

这也打印出应用程序/作业名称.对于mapreduce应用程序,您可以JobId通过替换with 的application前缀来获取相应的.Application-Idjob



1> AnthonyF..:

我必须多次这样做,所以我想出了以下命令行,你可以在某个地方放入一个脚本并重用.它打印jobid,后跟作业名称.

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/
//'"


直截了当

2> David Ongaro..:

如果您使用Hadoop YARN请勿使用mapred job -list(或其弃用版本hadoop job -list)

yarn application -appStates RUNNING -list

这也打印出应用程序/作业名称.对于mapreduce应用程序,您可以JobId通过替换with 的application前缀来获取相应的.Application-Idjob

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有