1

こんにちは私は奇妙な仕事を思いついたばかりです:Amazon EMR MapReduceの進行状況のロールバック?

私はEMRを使ってjava-MapReduceジョブを実行します。

データは約1Tで、私は1つのマスター+ 8スレーブを使用しました。

すべてのインスタンスはr2.2xlargeです。

最初に、すべてのものは以下のように正常に見える。しかし

INFO mapreduce.Job: map 0% reduce 0% 
INFO mapreduce.Job: map 1% reduce 0% 
INFO mapreduce.Job: map 2% reduce 0% 
INFO mapreduce.Job: map 3% reduce 0% 
INFO mapreduce.Job: map 4% reduce 0% 
INFO mapreduce.Job: map 5% reduce 0% 
INFO mapreduce.Job: map 6% reduce 0% 
INFO mapreduce.Job: map 7% reduce 0% 

...

、私はちょうど進歩が戻って(1%〜7%のようなから秋)ローリングになっていることに気づきました。

INFO mapreduce.Job: map 4% reduce 0% 
INFO mapreduce.Job: map 5% reduce 0% 
INFO mapreduce.Job: map 6% reduce 0% 
INFO mapreduce.Job: map 7% reduce 0% 
INFO mapreduce.Job: map 6% reduce 0% 
INFO mapreduce.Job: map 5% reduce 0% 
INFO mapreduce.Job: map 4% reduce 0% 
INFO mapreduce.Job: map 3% reduce 0% 

....

私は3Gデータのようにテストする場合には、そのような状況が現れていない結果が右であり、プロセスがスムーズに行き、そこにあります。

誰もこの状況が起こった理由を教えてもらえますか?

ベスト。

答えて

1

表示されているジョブの進行状況は、NodeManagersによって報告されたジョブの完了済みおよび進行中のタスクの統合ステータスです。

ジョブの進行状況が反転していると、NodeManagerがクラッシュしたか、またはハートビートとタスクステータスがResourceManagerに送信されないことが示唆されます。どちらの場合も、RMはそれをNM障害とみなし、特定の不完全なジョブについてNMによって報告されたすべてのタスクの進行を無効にします。正常に完了したタスクとクラッシュ前に実行していたタスクは、ApplicationMasterによって再実行されなければなりません。したがって、失敗したNMがジョブの進行に及ぼす寄与は無効となり、ジョブの進行状況は再計算されます。

ここで、入力ボリュームが大きいと、OOMエラーまたはタスクタイムアウトが発生する可能性があります。既定では、mapreduce.task.timeoutは600ms(10分)です。タスクがタイムアウト期間内に進捗を示さない場合、タスクは失敗します。 1つのジョブに対して複数の失敗(デフォルトでは3回)が発生すると、NMがブラックリストに追加され、進行状況が再計算されます。 Nodemanagerのログはより明確になります。

+1

こんにちは@franklinsijo、最後に、このような状況を克服するためにマップをリセットし、メモリを減らしました。 –

関連する問題