タスクがタイムアウトしなくなるのを避けるために、進捗状況をHadoopジョブに報告する方法

1)データをCassandraクラスターにストリームするマップ専用のHadoopジョブがあります。

2)時にはストリーミングに10分以上かかり、進行状況が仕事に報告されないため、仕事を殺します。

3)context.progress()メソッドで進捗状況を報告しようとしましたが、それは助けになりませんでした。

ハープ・ジョブに進捗を報告するために必要なことは他にありますか?

私はこの問題と次のコードをシミュレートするために、次のようなサンプルコードを書いています。

Thread.sleep(360000);

context.progress();

Thread.sleep(360000);

次のエラーメッセージで失敗します

12/02/06 11:40:25 INFO mapred.JobClient:タスクID:   試行日:201202061119_0001_m_000001_1、ステータス:FAILEDタスク   試行回数2020202061119_0001_m_000001_1は601のステータスを報告できませんでした   秒。殺す!

2

2 答え

context.progress()はうまくいくはずですが、次の問題に直面している可能性があります: https://issues.apache.org/jira/browse/MAPREDUCE-1905 をご覧ください。これは後のバージョンで修正されています。

0
追加された

Please see this question:
How to fix "Task attempt_201104251139_0295_r_000006_0 failed to report status for 600 seconds."

mapred.task.timeout プロパティをより高い値に設定するのが、この問題を解決する最も簡単な方法です。

0
追加された