web-dev-qa-db-ja.com

hadoopジョブを殺す方法

コードで未処理の例外が発生した場合、すべてのhadoopジョブを自動的に強制終了します。それを行うためのベストプラクティスは何ですか?

ありがとう

51
Frank

バージョンに応じて、以下を実行します。

バージョン<2.3.

Hadoopジョブを強制終了します。

hadoop job -kill $jobId

すべてのjobIdの実行のリストを取得できます。

hadoop job -list

バージョン> = 2.3.

Hadoopジョブを強制終了します。

yarn application -kill $ApplicationId

すべてのApplicationIdの実行のリストを取得できます。

yarn application -list
110
dr0i

次のコマンドの使用は非推奨です

hadoop job -list
hadoop job -kill $jobId

使用を検討する

mapred job -list
mapred job -kill $jobId
17
Prabhu

listを実行してすべてのジョブを表示し、適切なコマンドでjobID/applicationIDを使用します。

マップされたジョブを強制終了します。

mapred job -list
mapred job -kill <jobId>

糸の仕事を殺す:

yarn application -list
yarn application -kill <ApplicationId>
17
Ani Menon

未処理の例外は(特定のデータノードからの読み取りエラーではなく、不良データのように再現可能であると仮定して)最終的にジョブを失敗させます。

次のプロパティを使用して、ジョブ全体が失敗する前に特定のマップまたは削減タスクが失敗する最大回数を構成できます。

  • mapred.map.max.attempts-マップタスクごとの最大試行回数。言い換えると、フレームワークは、マップタスクをあきらめる前に何度も実行しようとします。
  • mapred.reduce.max.attempts-上記と同じですが、タスクを削減します

最初の失敗でジョブを失敗させたい場合は、この値をデフォルトの4から1に設定します。

4
Chris White

プロセスIDを強制的に強制終了するだけで、hadoopジョブも自動的に強制終了されます。次のコマンドを使用します。

kill -9 <process_id> 

例:プロセスID番号:4040 namenode

username@hostname:~$ kill -9 4040
2
Venu A Positive