我有一个运行在独立/伪模式下的4GB内存和4个内核的Ubuntu虚拟机。Hadoop - 减少溢出记录的数量
一切除了设置为默认:
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 Streaming作业(通过1.8GB的文本文件获取不同的记录)时,我得到了大量的溢出记录,并且上述调整似乎没有减少溢出。另外我注意到,当我监视Ubuntu系统监视器中的内存使用情况时,它永远不会被完全使用,并且永远不会超过2.2GB。
我已经看过chaging HADOOP_HEAP
,mapred.map.child.java.opts
和mapred.reduce.child.java.opts
但我不知道该如何设置它们,因为默认值看起来应该足够了。
有没有一个设置我缺少,将允许Hadoop利用剩余的内存因此减少溢出的记录(希望加快工作)或者这是正常的行为?
非常感谢!
这些幻灯片对我有帮助。这很好解释。请看看:http://www.slideshare.net/cloudera/mr-perf – sufinawaz 2013-09-30 16:28:27