我想尝试在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,但仍然会出现这个错误。我想我真的不明白记忆是怎么工作的。顺便说一下,我在单节点计算机上进行了尝试。
2条答案
按热度按时间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任务的内存分配。
8mmmxcuj2#
@gaurav所说的是正确的。我也有类似的问题,我尝试了下面的一些东西
yarn-site.xml
然后重新启动VM
```yarn.nodemanager.vmem-check-enabled
false
Whether virtual memory limits will be enforced for containers