2017-08-02 3 views
0

アクティブなDISTCPジョブをリストするにはどうすればよいですか?アクティブなDISTCPジョブをリストするにはどうすればいいですか?

私は2つのクラスタ間でdistcpジョブを実行しています。 hadoop distcp hdfs://x/y /x/y

これを継続的に実行したいが、既存のdistcpタスクが完了していることを確認する必要があります。

コピー元とコピー先の両方のクラスタで次のように試しましたが、コピー操作が表示されません。 mapred job -list all

+0

あなたは糸やHadoopのV1を使用していますか? – vgunnu

答えて

0

これは基本的にYarn api get applications by elapsedTimeのバリエーションです。あなたの場合は、RMクラスタアプリケーションAPIを使用してすべてのアプリケーションを取得できます(残念ながらnameでフィルタリングされません)。次に、名前がdistcpのアプリをフィルタリングします。 JQ使用してフィルタリングする方法を示しています。あなたのケースのために

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

を、あなたはアクティブなジョブでのみ興味があるなら、あなたは、API呼び出しにstatesフィルタを追加します。

$ 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

関連する問題