如何列出活动的DISTCP作业?

时间:2017-08-02 10:54:22

标签: hadoop jobs distcp

如何列出有效的DISTCP作业?

我在两个集群之间运行distcp作业。 hadoop distcp hdfs://x/y /x/y

我希望不断运行此功能,但需要确保现有的distcp任务完成。

我在源群集和目标群集上都尝试了以下操作,但是我看不到复制操作。  mapred job -list all

1 个答案:

答案 0 :(得分:1)

这基本上是Yarn api get applications by elapsedTime的变体。在您的情况下,您可以使用RM Cluster Applications API来获取所有应用程序(遗憾的是它不会在name上过滤),然后过滤名称等于distcp的应用程序。以下显示了如何使用jq进行过滤:

$ curl 'RMURL/ws/v1/cluster/apps' | jq '.apps.app[] | select (.name == "distcp")'

对于您的情况,如果您只对有效作业感兴趣,则可以将states过滤器添加到API调用中。

$ curl 'RMURL/ws/v1/cluster/apps?states=NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING' |\
    jq '.apps.app[] | select (.name == "distcp")'

http://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html#Cluster_Applications_API