MapReduce的计算资源划分

    一个MapReduce作业的计算工作都由TaskTracker完成, 用户向Hadoop提交作业,JobTracke:会将该作业拆分为多个任务,并根据心跳信息交由空闲的TaskTracker启动。一个TaskTracker能够启动的任务数量是由TaskTracker配置的任务槽(slot)决定。槽是Hadoop的计算资源的表示模型,Hadoop将各个节点上的多维度资源(CPU、内存等)抽象成一维度的槽,这样就将多维度资源分配问题转换成一维度的槽分配的问题。在实际情况中,Map任务和Reduce任务需要的计算资源不尽相同,Hadoop又将槽分成Map槽和Reduce槽,并且 Map任务只能使用Map槽,Reduce任务只能使用Reduce槽,如图示。


Hadoop的资源管理采用了静态资源设置方案,即每个节点配置好Map槽和Reduce槽的数量(配置项为mapred-site.xml的mapred.tasktracker.map.tasks.maximum和mapred.tasktracker.reduce.tasks.maximum ),一旦 Hadoop启动后将无法动态更改。


    这样的资源管理方案是有一定的弊端。
    (1)槽被设定为Map槽和Reduce槽,会导致在某一时刻Map槽或Reduce槽紧缺,降低
了槽的使用率。
    (2)不能动态地设置槽数量,可能会导致某一个TaskTracker资源使用率过高或过低。
    (3)提交的作业是多样化的,如果一个任务需要1 GB内存,将会产生资源浪费,如果一
个任务需要3 GB内存,则会发生资源抢占的情况。
    在Hadoop(CDH4, CDH5)中,上述的弊端已经得到了很大程度地解决。







本文参考书籍------Hadoop海量数据处理 技术详解与项目实战

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值