设置和设置有什么区别mapred.job.map.内存.mb and mapred.child.java.opts使用-Xmx 来控制Mapper 和Reduce 任务使用的最大内存?哪一个优先?
-Xmx
指定分配的jvm的最大堆空间。这是为对象分配保留的空间,由垃圾收集器。另一方面,mapred.job.map.memory.mb
指定最大值虚拟内存由 Hadoop 任务子进程允许。如果超过最大堆大小,JVM 会抛出 OutOfMemoryException。
JVM 可能使用比最大堆大小更多的内存,因为它还需要空间来存储对象定义(permgen 空间)和堆栈。如果进程使用的虚拟内存多于mapred.job.map.memory.mb
它被hadoop杀死了。
因此,一个并不优先于另一个(它们测量内存使用的不同方面),但是-Xmx
是 JVM 的一个参数,mapred.job.map.memory.mb
是任务尝试可以使用的虚拟内存的硬上限,由 hadoop 强制执行。
希望这对您有所帮助,记忆很复杂!我目前很困惑为什么我的 JVM 进程使用虚拟内存中最大堆大小的几倍我的帖子.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)