为什么java堆空间内存错误?

ntjbwcob  于 2021-05-30  发布在  Hadoop
关注(0)|答案(2)|浏览(333)

我想尝试在yarn中设置内存,所以我将尝试在yarn-site.xml和mapred-site.xml上配置一些参数。顺便说一下,我使用的是hadoop2.6.0。但是,我在做mapreduce工作时出错了。上面写着:

15/03/12 10:57:23 INFO mapreduce.Job: Task Id :
attempt_1426132548565_0001_m_000002_0, Status : FAILED
Error: Java heap space
Container killed by the ApplicationMaster.
Container killed on request. Exit code is 143
Container exited with a non-zero exit code 143

我认为我已经正确地配置了它,我给map.java.opts和reduce.java.opts小尺寸=64MB。我试着配置一些参数,比如在mapred-site.xml上更改map.java.opts和reduce.java.opts,但仍然会出现这个错误。我想我真的不明白记忆是怎么工作的。顺便说一下,我在单节点计算机上进行了尝试。

4si2a6ki

4si2a6ki1#

yarn处理资源管理,还提供可以使用mapreduce和实时工作负载的批处理工作负载。
内存设置可以在Yarn容器级别以及Map器和还原器级别进行设置。以Yarn容器大小为增量请求内存。mapper和reducer任务在容器中运行。
mapreduce.map.memory.mb和mapreduce.reduce.memory.mb
上面的参数描述了map reduce任务的内存上限,如果此任务订阅的内存超过此上限,则会终止相应的容器。
这些参数分别决定可分配给mapper和reduce任务的最大内存量。让我们看一个示例:mapper由配置参数mapreduce.map.memory.mb中定义的内存上限绑定。
但是,如果yarn.scheduler.minimum-allocation-mb的值大于mapreduce.map.memory.mb的值,则遵循yarn.scheduler.minimum-allocation-mb并给出该大小的容器。
此参数需要小心设置,如果设置不正确,可能会导致性能不佳或内存不足错误。
mapreduce.reduce.java.opts和mapreduce.map.java.opts
此属性值需要小于mapreduce.map.memory.mb/mapreduce.reduce.memory.mb中定义的map/reduce任务的上限,因为它应该适合于map/reduce任务的内存分配。

8mmmxcuj

8mmmxcuj2#

@gaurav所说的是正确的。我也有类似的问题,我尝试了下面的一些东西 yarn-site.xml 然后重新启动 VM ```

yarn.nodemanager.vmem-check-enabled
false
Whether virtual memory limits will be enforced for containers

相关问题