0

次のジョブでメモリがどこで使用されているのか疑問に思っています。

  • Hadoop マッパー/リデューサーのヒープ サイズ:-Xmx2G
  • ストリーミング API:

    • マッパー:/bin/cat
    • レデューサー:wc
  • 入力ファイルは 350MByte のファイルで、1行がa's でいっぱいです。

これは、実際に遭遇した問題を単純化したものです。

HDFS からファイルを読み取ってText-Object を構築しても、ヒープが 700MB を超えることTextはありません (1 文字あたり 16 ビットも使用すると仮定します)。それについてはよくわかりませんが、 Text8 ビットしか使用していないと想像できます。

したがって、これらの (最悪の場合) 700MB 回線があります。行はヒープに少なくとも 2 倍収まるはずですが、常にメモリ不足エラーが発生します。

これは、Hadoop の潜在的なバグ (不正なコピーなど) ですか?それとも、必要なメモリを集中的に使用する手順を理解していないだけですか?

さらなるヒントがあれば本当に感謝します。

4

1 に答える 1