为什么YARN java堆空间内存错误?
我想尝试在YARN中设置内存,所以我将尝试在yarn-site.xml和mapred-site.xml上配置一些参数。 顺便说一句,我使用hadoop 2.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小尺寸= 64 MB。 我尝试配置一些参数,比如在mapred-site.xml上更改map.java.opts和reduce.java.opts,我仍然会收到此错误。 我认为我并不真正理解YARN记忆是如何工作的。 顺便说一句,我尝试单节点计算机。
Yarn处理资源管理,还提供可以使用MapReduce和实时工作负载的批处理工作负载。
可以在Yarn容器级别以及mapper和reducer级别设置内存设置。 以Yarn容器大小的增量请求内存。 Mapper和reducer任务在容器内运行。
mapreduce.map.memory.mb和mapreduce.reduce.memory.mb
上面的参数描述了map-reduce任务的内存上限,如果此任务订阅的内存超过此限制,则相应的容器将被终止。
这些参数分别确定可分配给映射器和减少任务的最大内存量。 让我们看一个例子:Mapper受内存上限的限制,该内存在配置参数mapreduce.map.memory.mb中定义。
但是,如果yarn.scheduler.minimum-allocation-mb的值大于mapreduce.map.memory.mb的此值,则会遵循yarn.scheduler.minimum-allocation-mb并给出该大小的容器出。
需要仔细设置此参数,如果设置不正确,可能会导致性能不佳或OutOfMemory错误。
mapreduce.reduce.java.opts和mapreduce.map.java.opts
此属性值需要小于mapreduce.map.memory.mb / mapreduce.reduce.memory.mb中定义的map / reduce任务的上限,因为它应该适合map / reduce任务的内存分配。
@Gaurav所说的是对的。 我有类似的问题,我尝试了下面的一些事情。在yarn-site.xml
包含以下属性并重启VM
yarn.nodemanager.vmem-check-enabled false Whether virtual memory limits will be enforced for containers yarn.nodemanager.vmem-pmem-ratio 4 Ratio between virtual memory to physical memory when setting memory limits for containers
- 初始工作没有接受任何资源; 检查群集UI以确保工作人员已注册并具有足够的资源
- HDFS:使用Java / Scala API移动多个文件
- YarnException:未经授权的启动容器的请求
- 包org.apache.hadoop.fs不存在
- 什么是Hadoop上的HDFS位置?
- Jetty中的传输速度缓慢,在某些缓冲区大小时使用分块传输编码
- 无法validationserde:org.openx.data.jsonserde.jsonserde
- 运行hbase MR作业时,我的cdh5.2集群会出现FileNotFoundException
- Oozie> Java动作>为什么属性oozie.launcher.mapred.child.java.opts不起作用