2

小さなテーブルと大きな歪んだテーブルの間で単純なピッグ ジョインを実行しています。"using skewed"別のバグが原因で使用できません(大きなテーブルとの豚の歪んだ結合により、「分割メタデータのサイズが 10000000 を超えました」 ) :(

デフォルトを使用するmapred.job.shuffle.input.buffer.percent=0.70と、reducer の一部がシャッフル段階で失敗します。

org.apache.hadoop.mapred.Task: attempt_201305151351_21567_r_000236_0 : 
Map output copy failure : java.lang.OutOfMemoryError: GC overhead limit exceeded

これを変更するとmapred.job.shuffle.input.buffer.percent=0.30、2 時間以内 (使用する 1000 のレデューサーのうち 3 つの遅延レデューサーがあります) で正常に終了します。

SpillableMemoryManager: first memory handler call- 
Usage threshold init = 715849728(699072K) used = 504241680(492423K) committed = 715849728(699072K) max = 715849728(699072K)

なぜこれが起こるのですか?シャッフル入力バッファーが 70% のときに SplilableMemoryManager が失敗から保護しないのはなぜですか?

4

1 に答える 1