アクティブなDISTCPジョブをリストするにはどうすればよいですか?アクティブなDISTCPジョブをリストするにはどうすればいいですか?
私は2つのクラスタ間でdistcpジョブを実行しています。 hadoop distcp hdfs://x/y /x/y
これを継続的に実行したいが、既存のdistcp
タスクが完了していることを確認する必要があります。
コピー元とコピー先の両方のクラスタで次のように試しましたが、コピー操作が表示されません。 mapred job -list all
アクティブなDISTCPジョブをリストするにはどうすればよいですか?アクティブなDISTCPジョブをリストするにはどうすればいいですか?
私は2つのクラスタ間でdistcpジョブを実行しています。 hadoop distcp hdfs://x/y /x/y
これを継続的に実行したいが、既存のdistcp
タスクが完了していることを確認する必要があります。
コピー元とコピー先の両方のクラスタで次のように試しましたが、コピー操作が表示されません。 mapred job -list all
これは基本的に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")'
あなたは糸やHadoopのV1を使用していますか? – vgunnu