我有一个 Ubuntu vm 以独立/伪模式运行,具有 4gb ram 和 4 个内核。
一切都设置为默认值,除了:
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 利用剩余的 ram 从而减少溢出的记录(希望加快工作速度)或者这是正常的行为?
非常感谢!