yarn内存设置问题

hive查询时出现

Ended Job = job_1544003470555_0007 with errors
Error during job, obtaining debugging information...
FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

然后进行yarn测试

hadoop jar hadoop-mapreduce-examples-3.0.0-cdh6.0.0.jar pi 2 10

报错

18/12/11 17:58:56 INFO mapreduce.Job: Job job_1544003470555_0008 failed with state KILLED due to: The required MAP capability is more than the supported max container capability in the cluster. Killing the Job. mapResourceRequest: <memory:2048, vCores:2> maxContainerCapability:<memory:1024, vCores:1>

解决方法

修改参数 调大虚拟内存,根据自己情况配置

mapreduce.map.memory.mb=2048
mapreduce.reduce.memory.mb=2048
yarn.nodemanager.vmem-pmem-ratio=3
参考yarn平台参数设置点击此处
这样map运行时的虚拟内存大小为 2048*3

类似这样的情况还有
设置Container的分配的内存大小,意味着ResourceManager只能分配给Container的内存

大于yarn.scheduler.minimum-allocation-mb=2G,
不能超过 yarn.scheduler.maximum-allocation-mb=8G  的值。

ResourceManager分配给container的CPU也要满足最小和最大值的条件,通过设置

yarn.scheduler.minimum-allocation-vcores=2
yarn.scheduler.maximum-allocation-vcores=8