网站的ftp地址怎么查,专门制作网页的工具,购物网站排名2016,做律师百度推广的网站文章目录 一. 问题描述二. 问题分析与解决1. container内存监控1.1. 虚拟内存判断1.2. 物理内存判断 2. 正确配置mapReduce内存2.1. 配置map和reduce进程的物理内存#xff1a;2.2. Map 和Reduce 进程的JVM 堆大小 3. 小结 一. 问题描述
在hadoop3.0.3集群上执行hive3.1.2的任… 文章目录 一. 问题描述二. 问题分析与解决1. container内存监控1.1. 虚拟内存判断1.2. 物理内存判断 2. 正确配置mapReduce内存2.1. 配置map和reduce进程的物理内存2.2. Map 和Reduce 进程的JVM 堆大小 3. 小结 一. 问题描述
在hadoop3.0.3集群上执行hive3.1.2的任务任务提交时报如下错误 Application application_1409135750325_48141 failed 2 times due to AM Container for appattempt_1409135750325_48141_000002 exited with exitCode: 143 due to: Container [pid4733,containerIDcontainer_1409135750325_48141_02_000001] is running beyond physical memory limits. Current usage: 2.0 GB of 2 GB physical memory used; 6.0 GB of 4.2 GB virtual memory used. Killing container. 上述日志大致描述了 任务申请了2.0g的物理内存6g的虚拟内存但是yarn只能分配2g的物理内存4.2g的虚拟内存。因为虚拟内存不够导致任务无法启动而报错。 二. 问题分析与解决
报错的原因是申请的物理内存比container中物理内存大导致任务无法运行。那为什么超预算申请这是我们需要探索的问题。
1. container内存监控 本节讨论yarn是如何监控container的内存变化。 每一个yarn的节点都会运行一个nodemanagernodemanager会监控container的运行其中nodemanager会监控container的内存使用率。具体地nodemanager会定期yarn.nodemanager.container-monitor.interval-ms 默认三秒监控container它会计算进程树每一个container所有的子进程检查每一个进程文件/proc/PID/statPIDcontainer的pid并解析物理内存和虚拟内存。 1.1. 虚拟内存判断
如果启用虚拟内存检查默认为 trueyarn.nodemanager.vmem-check-enabled则 YARN 会判断container现在所申请的虚拟内存是否小于允许的最大虚拟内存
而最大的虚拟内存由yarn.nodemanager.vmem-pmem-ratio默认为 2.1计算得出。 比如container配置 2 GB 物理内存则该数字乘以 2.1得出可以使用 4.2 GB 虚拟内存。 1.2. 物理内存判断
如果启用物理内存检查默认为 trueyarn.nodemanager.pmem-check-enabled则 YARN 会判断container现在所申请的物理内存是否小于允许的最大物理内存 综上所述 如果虚拟或物理高于允许的最大值YARN 将终止container运行报错如本文顶部所示。 知道了报错的原因我们就可以针对性的配置mapreduce相关配置接着往下看。 2. 正确配置mapReduce内存
2.1. 配置map和reduce进程的物理内存
假如map限制为2GB、reduce限制为4GB且设置为默认值则可以在mapred-site.xml中配置
propertynamemapreduce.map.memory.mb/namevalue2048/value
/property
propertynamemapreduce.reduce.memory.mb/namevalue4096/value
/property而上述的配置必须在container允许的最小和最大内存范围内在yarn-site.xml中分别检查yarn.scheduler.maximum-allocation-mb和yarn.scheduler.minimum-allocation-mb属性。 propertynameyarn.scheduler.minimum-allocation-mb/namevalue1024/value/propertypropertynameyarn.scheduler.maximum-allocation-mb/namevalue8196/value/property2.2. Map 和Reduce 进程的JVM 堆大小
这些大小需要小于您在上一节中配置的物理内存。一般来说它们应该是 YARN 物理内存设置大小的 80%。采用 2GB 和 4GB 物理内存限制并乘以 0.8 来得出 Java 堆大小。
propertynamemapreduce.map.java.opts/namevalue-Xmx1638m/value
/property
propertynamemapreduce.reduce.java.opts/namevalue-Xmx3278m/value
/property3. 小结
如果说配置之后还是报开头的错误说明物理内存配置还是小不足以加载mr程序接着申请了大于2.1比例的虚拟内存这样任务还是启动不了。
这时可以调大yarn.nodemanager.vmem-pmem-ratio比例或者进一步调大物理内存。2.1是yarn推荐的比例ing这里建议调整物理内存。
如果是少数任务需要特定调整则我们可以在任务启动时根据实际情况配置动态地传递以下参数来覆盖不适合此任务的默认配置。
配置描述mapreduce.map.memory.mbmap所用物理内存mapreduce.reduce.memory.mbreduce所用物理内存mapreduce.map.java.optsmap堆内存一般为mapreduce.map.memory.mb的80%mapreduce.reduce.java.optsreduce堆内存一般为mapreduce.reduce.memory.mb的80% 参考 http://grepalex.com/2016/12/07/mapreduce-yarn-memory/