MapReduce On YARN的资源申请

MapReduce On YARN的资源申请

MapReduce资源分配原理

MapReduce所需要的资源包含三类:

  1. mapper task所需要的资源
  2. reducer task所需的资源
  3. Job Tracker(AM)所需要的资源
  • mapper

mapper的数量由输入的splits个数决定.有几个split就有几个mapper.默认情况下,MapReudce根据输入文件的数量和HDFS块大小决定split个数.对于每一个输入文件,根据HDFS块大小,每一个HDFS块作为一个split.对于每一个文件,不足一个HDFS块的剩余部分也对应一个split.

MapReduce的split大小受mapreduce.input.fileinputformat.split.minsizemapreduce.input.fileinputformat.split.minsize约束.通过调高这两个参数,可以改变split的数量.比如可以将这两个参数改为512MB.那么,每512MB输入将对应一个Mapper.

单个mapper所需的CPU由参数mapreduce.map.cpu.vcores控制,默认为1个核.内存由参数mapreduce.map.memory.mb控制,默认为1G.

因为每一个mapper对应一个YARN的Container.YARN的Container有最小和最大资源约束:

yarn.scheduler.minimum-allocation-mb yarn.scheduler.maximum-allocation-mb yarn.scheduler.maximum-allocation-vcores yarn.scheduler.minimum-allocation-vcores

除MapReduce自动计算Mapper数量外,也可以通过程序指定Mapper数量.但指定mapper数量需要满足最终一个mapper不能对应两个输入文件的原则.即,指定的数量要大于MR自动计算出来的数量.

  • reducer

reducer的数量由程序员指定.根据经验,数量应该设置为**<TODO>**.

与mapper类似,每一个reducer的资源由由参数mapreduce.reduce.cpu.vcores控制,默认为1个核.内存由参数mapreduce.reduce.memory.mb控制

  • Job Tracker

AM只有一个,CPU和内存分别通过如下参数控制.

yarn.app.mapreduce.am.resource.cpu-vcores yarn.app.mapreduce.am.resource.mb

mapreduce-parameter

参考文档

转载于:https://my.oschina.net/cheyo/blog/1483830

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值