如何列出活动的 DISTCP 作业?
How can I list active DISTCP jobs?
如何列出活动的 DISTCP 作业?
我运行正在两个集群之间执行 distcp 作业。
hadoop distcp hdfs://x/y /x/y
我想 运行 持续这样做,但需要确保现有 distcp
任务已完成。
我已经在源集群和目标集群上尝试了以下操作,但我看不到复制操作。
mapred job -list all
这基本上是 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")'
如何列出活动的 DISTCP 作业?
我运行正在两个集群之间执行 distcp 作业。
hadoop distcp hdfs://x/y /x/y
我想 运行 持续这样做,但需要确保现有 distcp
任务已完成。
我已经在源集群和目标集群上尝试了以下操作,但我看不到复制操作。
mapred job -list all
这基本上是 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")'