3

4 GB RAM と 4 コアを備えたスタンドアロン/疑似モードで実行されている Ubuntu vm があります。

以下を除くすべてがデフォルトに設定されています。

io.file.buffer.size=65536
io.sort.factor=50
io.sort.mb=500
mapred.tasktracker.map.tasks.maximum=4
mapred.tasktracker.reduce.tasks.maximum=4

この ofc はプロダクション マシンではありませんが、微調整を行うためにいじっています。

私の問題は、ベンチマークの Hadoop ストリーミング ジョブ (1.8 GB のテキスト ファイルで個別のレコードを取得する) を実行すると、大量のこぼれたレコードが発生し、上記の調整ではこぼれが減らないように見えることです。また、Ubuntu のシステム モニターでメモリ使用量を監視すると、メモリが完全に使用されることはなく、2.2 GB を超えることもありません。

chaging を見てきましたHADOOP_HEAPmapred.map.child.java.optsmapred.reduce.child.java.optsデフォルトで十分であるように見えるため、これらを何に設定すればよいかわかりません。

Hadoop が残りの RAM を利用できるようにして、こぼれたレコードを減らす (できればジョブを高速化する) ことを可能にする、私が見逃している設定はありますか? それとも、これは通常の動作ですか?

どうもありがとう!

4

2 に答える 2

1

map/reduce タスクに割り当てられるデフォルトのメモリは 200MB です。-Dmapred.child.java.opts=-Xmx512M でその値を増やすことができます

とにかく、これは Hadoop チューニングHadoop Performanceに関する非常に興味深い資料です。

それが役に立てば幸い!

于 2013-03-01T20:59:06.567 に答える