Hadoop集群作业调度的研究.ppt

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Capacity Scheduler—涉及到的变量 @ numSlotsOccupied:正在running的task占用的slot总数,注意,在Capacity Scheduler中,running task与slot不一定是一一对应的,每个task可获取多个slot,这主要是因为该调度支持内存资源调度,某个task可能需要多个slot包含的内存量。 @ numSlotsOccupiedByUser:每个用户的作业占用slot总数,用以限制用户使用的资源量。 (2) job维护的信息 priority:作业优先级,分为五个等级,从大到小依次为:VERY_HIGH,HIGH,NORMAL,LOW,VERY_LOW; numMapTasks/ numReduceTasks :job的map/reduce task总数 runningMapTasks/ runningMapTasks:job正在运行的map/reduce task数 finishedMapTasks/finishedReduceTasks:job已完成的map/reduce task数 …… (3) task维护的信息 task开始运行时间,当前状态等 Capacity Scheduler—调度算法 当某个tasktracker上出现slot时,调度器依次选择一个 queue、(选中的queue中的)job、(选中job中的)task,并将该slot分配给该task。下面介绍选择queue、job和task所采用的策略: (1)选择queue:将所有queue按照资源使用率(numSlotsOccupied/capacity)从小到大排序,依次进行处理,直到找到一个合适的job。 (2)选择job:在当前queue中,所有作业按照作业提交时间和作业优先级排序(假设开启支持优先级调度功能,默认不支持,需要在配置文件中开启),调度依次考虑每个作业,选择符合两个条件的job:[1]作业所在的用户未到达资源使用上限;[2]该TaskTracker所在的节点剩余的内存足够该job的task使用。 (3)选择task,同大部分调度器一样,考虑task的locality(就近原则)和资源使用情况。即:调用JobInProgress中的obtainNewMapTask()/obtainNewReduceTask()方法) Capacity Scheduler—调度流程 job11 按到达时间排序,先来先服务 job12 job13 job15 job16 job21 job22 job23 job24 job25 job31 job32 job33 job34 job35 job36 job37 queueA queueB queueC 100 slots (20%, 15) (50%, 25) (30%, 25) job14 Fair Scheduler VS Capacity Scheduler (1) 相同点 均支持多用户多队列,即:适用于多用户共享集群的应用环境 单个队列均支持优先级和FIFO调度方式 均支持资源共享,即某个queue中的资源有剩余时,可共享给其他缺资源的queue (2) 不同点 核心调度策略不同 计算能力调度器的调度策略是,先选择资源利用率低的queue,然后在queue中同时考虑FIFO和memory constraint因素;而公平调度器仅考虑公平,而公平是通过作业缺额体现的,调度器每次选择缺额最大的job(queue的资源量,job优先级等仅用于计算作业缺额)。 内存约束 计算能力调度器调度job时会考虑作业的内存限制,为了满足某些特殊job的特殊内存需求,可能会为该job分配多个slot;而公平调度器对这种特殊的job无能为力,只能杀掉这种task。 4、 异构负载动态调度器 设计目标: 异构负载调度器将问题集中在当MapReduce框架中有不同种类负载时怎样提高硬件利用率。作业按其类型可分为CPU频繁类型和IO频繁类型。但目前Hadoop的调度器(前面的三种调度器)都没有考虑到作业负载的类型,调度的策略都是在根据不同规则排列的作业队列取队首作业运行,这样会降低整个系统的吞吐量。 设计思想: 设计一个三级队列调度器,包含工作负载预测机制MR-Predict和三个不同的队列,即:CPU-Bound队列,I/O-Bound队列和等待队列。通过MR-Predict机制自动地预测到达的作业负载类型并把它们放入不同的队列中。每一个队列独立地按照FCFS调度策略工作。 异构负载动态调度器的设计实现 1、定义变量:

文档评论(0)

5566www + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6122115144000002

1亿VIP精品文档

相关文档