当前位置:  开发笔记 > 大数据 > 正文

将内存配置到TaskTracker子进程的不同方法(Mapper和Reduce Tasks)

如何解决《将内存配置到TaskTracker子进程的不同方法(Mapper和ReduceTasks)》经验,为你挑选了1个好方法。

使用-Xmx 设置mapred.job.map.memory.mb和mapred.child.java.opts来控制Mapper和Reduce任务使用的最大内存有什么区别?哪一个优先?



1> schmmd..:

-Xmx指定分配的jvm的最大堆空间.这是由垃圾收集器管理的对象分配保留的空间.另一方面,mapred.job.map.memory.mb指定Hadoop任务子进程允许的最大虚拟内存.如果超过最大堆大小,JVM将抛出OutOfMemoryException.

JVM可能使用比最大堆大小更多的内存,因为它还需要空间来存储对象定义(permgen空间)和堆栈.如果进程使用的虚拟内存多于mapred.job.map.memory.mbhadoop杀死的虚拟内存.

因此,一个不优先于另一个(并且它们测量内存使用的不同方面),但它-Xmx是JVM的参数,并且mapred.job.map.memory.mb是任务尝试可以使用的虚拟内存的硬上限,由hadoop强制执行.

希望这是有帮助的,记忆很复杂!我现在很困惑为什么我的JVM进程在我的SO帖子中使用虚拟内存中几倍的最大堆大小.

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有