yarn的资源管理。

本文记录了CDH集群上Word-Count程序遇到的map0% reduce0%问题,详细分析了YARN资源分配不足导致的任务无法正常启动的情况,并介绍了如何调整关键配置参数以解决问题。

把CDH搭建起来了,跑其中的例子程序word-count。在控制台界面一直显示map 0%  reduce 0% , 通过web页面查看job的状态一直是run,但是map没有执行。感觉是是资源的分配有问题。接着查看了任务的日志。

2014-07-04 17:30:37,492 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Recalculating schedule, headroom=0
2014-07-04 17:30:37,492 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Reduce slow start threshold not met. completedMapsForReduceSlowstart 2
2014-07-04 17:30:38,496 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Ramping down all scheduled reduces:0
2014-07-04 17:30:38,496 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Going to preempt 0

日志中没有任何的错误,但是一直打印该信息,应该是RM资源分配不够。

YARN中,资源包括内存和CPU,资源的管理是由ResourceManager和NodeManager共同完成,ResourceManager负责所有节点资源的管理和调度。NodeManager负责进程所在结点资源的分配和隔离。ResourceManager将某个NodeManager上资源分配给任务。下面详细介绍其中的一些重要参数。

yarn.nodemanager.resource.memory-mb

每个节点可用的内存,单位是mb,默认是8G,用于供NodeManager分配的。我出现的问题是资源分配太小,只有1G。

yarn.scheduler.minimum-allocation-mb

单个任务可申请的最小内存,默认是1024mb,稍微大一点,避免小的资源浪费情况,我本机资源少,所以给他分配了512mb, 失败的原因也就是这个分配过大。

yarn.scheduler.maximum-allocation-mb

单个任务可申请的最大内存,默认是8192mb. 如果是spark任务的话,这里调大吧

mapreduce.map.memory.mb

每个map任务的物理内存限制,应该大于或等于yarn.scheduler.minimum-allocation-mb

mapreduce.reduce.memory.mb

每个reduce任务的物理内存限制

mapreduce.map.java.opts

每个map进程的jvm堆的大小

mapreduce.reduce.java.opts

每个reduce进程的jvm堆的大小


每个节点可以运行map数和redue输,由yarn.nodemanager.resource.memory-mb除于mapreduce.map.memory.mb和mapreduce.reduce.memory.mb得到


http://dongxicheng.org/mapreduce-nextgen/hadoop-yarn-memory-cpu-scheduling/   还有一些参数参考这里

转载于:https://my.oschina.net/1987times/blog/287866

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值