关于hadoop-env.sh的Querstion

时间:2014-06-27 05:31:02

标签: java hadoop hadoop-streaming hadoop-partitioning hadoop2

我遇到错误:Java堆空间和错误:超出GC开销限制

所以我开始研究hadoop-env.sh。

这就是我目前所理解的,如果我错了,请纠正我。

if HADOOP_HEAPSIZE=7168 in hadoop-env.sh

这将在datanode上调用datanode守护进程和tasktracker守护进程,每个守护进程分配7GB内存(datanode(7GB)+ tasktracker(7GB)= 14GB)

mapred.tasktracker.reduce.tasks.maximum = 3
mapred.tasktracker.map.tasks.maximum = 6 and 
mapred.child.java.opts -Xmx1024m

因此,这将调用9个内存为1GB的子JVM,总共9GB

但是使用7GB内存调用tasktracker,所以这将发生冲突。由tasktracker调用的tasktracker和子JVMS的最大内存为7GB,但它们消耗9G。

所以堆空间错误发生了,我的计算是否正确?

0 个答案:

没有答案