Hadoop集群作业的调度研究

上传人:平*** 文档编号:46193476 上传时间:2018-06-23 格式:PPT 页数:54 大小:1.11MB
返回 下载 相关 举报
Hadoop集群作业的调度研究_第1页
第1页 / 共54页
Hadoop集群作业的调度研究_第2页
第2页 / 共54页
Hadoop集群作业的调度研究_第3页
第3页 / 共54页
Hadoop集群作业的调度研究_第4页
第4页 / 共54页
Hadoop集群作业的调度研究_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《Hadoop集群作业的调度研究》由会员分享,可在线阅读,更多相关《Hadoop集群作业的调度研究(54页珍藏版)》请在金锄头文库上搜索。

1、LOGOHadoop集群作业的调度研究ContentsHadoop和MapReduce简介1Hadoop的集群作业调度原理2如何编写自己的Hadoop调度器4结论与展望5Hadoop的集群作业调度算法3ContentsHadoop和MapReduce简介1Hadoop的集群作业调度原理2如何编写自己的Hadoop调度器4结论与展望5Hadoop的集群作业调度算法31、Hadoop简介Hadoop是基于java分布式密集数据 处理和数据分析的软件框架提供了廉价的处理大数据的可能是开源生态系统,淘宝、腾讯、百 度、新浪、facebook、yahoo、amazon、 ebay、twitter 都在用

2、Hadoop简介各种业业务务应应用hiveDBaseMapReduceHDFSh hadoop的业界标准核心Hadoop简介各种业业务务应应用hiveDBaseMapReduceHDFSh hadoop的业界标准核心简单来说,就是任务的分解和结果 的合成。MapReduce工作原理MapReduce是用于并行处理大数据 的软件框架。计算机 集群MapReduce工作原理流程如下:任 务 分解小 任 务小 任 务小 任 务发送部 分 信 息传送反馈 部 分 信 息部 分 信 息结 果整合HDFS架构简介ContentsHadoop和MapReduce简介1Hadoop的集群作业调度原理2如何编写

3、自己的Hadoop调度器4结论与展望5Hadoop的集群作业调度算法3Hadoop MapReduce引擎是由JobTracker和TaskTracker组成 ,下图是Hadoop的结构。1、 Hadoop MapReduce引擎2、MapReduce工作机制3、Hadoop调度流程TaskTrackerTaskTrackerTaskTrackerJobTrackerTaskScheduler assignTasks() task list tasks-to-lauchTask launchClient submitJob() notifyinitJob( )Hadoop作业包含一些map任务

4、和task任务。这些任务在集群的节点 的任务槽(slots)上执行。每一个节点根据其计算资源配置有一系列的map 任务槽和reduce槽,典型入每个节点cpu的一个核当作一个slot。调度器的 任务就是为任何空闲的slot分配任务。所有调度器实际上均采用了三级调 度策略,即为空闲的slot依次选择一个队列、作业和任务。 队列(queue) 用户被划分到某个队列 每个队列分配一定量的资源 作业(job) 提交时间 优先级(5个优先级:VERY_HIGH,HIGH, NORMAL, LOW, VERY_LOW) 任务(task)本地性(node locality, rack locality)4、

5、Hadoop三级调度ContentsHadoop和MapReduce简介1Hadoop的集群作业调度原理2如何编写自己的Hadoop调度器4结论与展望5Hadoop的集群作业调度算法3传统调度器:FIFO 批处理调度器Fair Scheduler 多用户调度器Capacity Scheduler 多用户调度器新特性调度器:适用于异构负载的调度器 适用于异构集群的调度器LATE适用于实时作业的调度器Constraint-based Scheduler Hadoop现有调度器最早的Hadoop Map/Reduce计算架构中,JobTracker在进行 作业调度时使用的是FIFO(First In

6、 First Out)算法。所有用户 的作业都被提交到一个队列中,然后由JobTracker先按照作业的 优先级高低,再按照作业提交时间的先后顺序选择将被执行的作 业。 FIFO比较简单,hadoop中只有一个作业队列,被提交的作业 按照先后顺序在作业队列中排队,新来的作业插入到队尾。一个 作业运行完后,总是从队首取下一个作业运行。这种调度策略的 优点是简单、易于实现,同时也减轻了jobtracker的负担。但是 它的缺点也是显然的,它对所有的作业都一视同仁,没有考虑到 作业的紧迫程度,另外对小作业的运行不利。 1、FIFO调度器FIFO调度器job1按到达时间排序,先来先服务job2job3

7、job4job5job6job7job8map task0map task1map task2reduce task0reduce task1reduce task2map task3map task4map task5job1queueFIFO调度器job1按到达时间排序,先来先服务job2job3job4job5job6job7job8map task1failedTasksmap task0locality tasksmap task3non-locality tasksmap task2map task4speculative tasksmap task5job1reduce task

8、0nonRunningReducesreduce task1speculative tasksreduce task22、Fair公平调度器算法设计思想:适用于多用户情形。当集群中由多个用户提交作业时,为了保证公平性 ,调度器为每个用户或每个UNIX Group分配一个资源池。资源池里的每个 作业都会按照其作业权重分配最小资源共享量以保证每个作业都能得到执行 而不至于饥饿。当集群中的某个节点出现空闲的slot时,则选择目前已获得 的资源量和理论上应获得的资源量的差值最大的作业来执行,以保证公平。 主要特点: u支持多用户多队列: u资源公平共享(公平共享量有优先级决定):公平调度器按照资源 池

9、(pool)来组织作业,并把资源公平地分到这些资源池里。默认情况下, 每个用户拥有一个独立的资源池,以使每个用户不管提交多少作业都能获得 一份等同的集群资源量。资源池也可以依据一定的权重来获取相应比例的资 源份额。资源池实际上也可以称为队列。u保证最小共享量:除公平共享,公平调度算法还能为资源池设定其所需 的最小共享量,管理员可以给每个pool配置一个最小共享量,调度器在分 配资源时,需要保证每个pool中的作业获取该数目的资源。这样确保用户 或应用程序总能获取足够的资源,由此可以提高整个系统的资源利用率。 u支持时间片抢占:公平调度器支持抢占,如果一个池在一定时间内未得 到公平地资源分配,调

10、度器就会终止池中得到过多资源的任务,将集群资源 让给此资源池。 u限制作业并发量,防止中间数据塞满硬盘:公平调度算法调度运行 所有用户作业,但也可以限定每个资源池中最大并发作业数和每个用户最多 提交作业数。如果一次性运行大作业,会导致产生过多的中间记录信息以及 过多的上下文切换,这都会影响到作业执行的性能。超过数量的作业将在调 度队列中等待,直到一些资源池的早期作业完成。每个资源池对作业的调度 方式可以配置,支持两种调度策略,分别为FIFO和公平调度。 u动态调整各个资源池的资源量:当集群中存在多个资源池时,某些资 源池的资源可能用不了,这时调度器会自动将这些资源池中的剩余资源共享 给其它所需

11、要的资源池,其它这些资源获取的共享资源多少主要由资源池权 重决定,权重越大,获取的资源越多,一个资源池的最小共享量加上其获取 的共享资源就是公平共享量。公平调度器的实现基本概念Pool:资源池,或者作业池。 每个pool里有一定量的资源(CPU 、内存、网络IO,磁盘等,这些由管理员配置),每个用户属 于某个pool,其作业可使用这个pool中的资源,可限定每个 pool中最大并发作业数和每个用户最多提交作业数。默认情况 下,一个linux用户对应一个pool,而管理员也可以配以一个 linux group对应一个pool。pool实际上也可以称为group或 者队列。 最小共享量:管理员可给

12、每个pool配置一个最小共享量,调度器 在分配资源时,需要保证每个pool中的作业至少获取该数目的 资源。一个常见的应用场景是,对产品pool设置最小共享量, 而测试pool不设置,这样,当可用资源有限时时,优先保证产 品pool有资源可用。 公平共享量:当集群中存在多个pool时,某些pool中的资源可能用不了,这时 候调度器会自动将这些pool中剩余的资源共享给其他需要的pool,其他这 些pool获取的共享资源多少主要由其pool weight决定,pool weight越大 ,获取的资源越多。 一个pool的最小共享量加上其获取的共享资源数目, 就是公平共享量。 公平调度器的实现算法实

13、现最简单的实现公平共享的方法如下:任何时候当一个slot 空闲时,把它分配给运行着最少任务的资源池。这可以保证所 有的pool得到相同数量的slot,除非这个pool的需求量(调 度器想要执行任务数,等于已经运行的任务数+尚未启动的任 务数)比其得到的公平共享量小,这时,该pool多余的slot将 会分配给其它pool中。下面介绍公平调度器的两个特性,这两 个特性使得公平共享算法简单了一些。1、pool的权重代表了某个pool能得到slot数量多少的能 力。比如,权重为2的pool能得到的slot数量是权重为1的 pool的2倍。2、公平共享量低于其最小共享量的pool优先得到空闲的 slot

14、比较器对job或pool首先按照公平共享量低于最小共享量 的差额进行排序,按照然后再runningTasks/weight( jobWeight或poolWeight),再依次扫描队列,选择合适 的pool或job。公平调度器的实现公平共享量的计算方法公平共享量是基于最小共享量和共享资源量计算得到的, 它反映的是某个pool经过资源共享(某些pool的资源用不了 ,会自动共享给其他pool)之后,一共可以获取的资源总量, 一般会大于等于最小共享量。如果每个pool没有配置最小共享量,且提交了无限量的 作业,则让每个pool的slotsAssigned / weight值相同即 可。(其中slo

15、tsAssgined表示分配给该pool的slot数, weight表示pool的权重)。而有了最小共享量minShare和pool中的需求量 demand(该pool中所有作业尚需的slot总数)后,计算公 平共享量fairShare需注意以下两种情况: u(1) 某些pool中的最小共享量可能用不完 u(2) 给配给某些pool的资源量小于其最小共享量公平调度器的实现公平共享量的计算方法考虑到以上两种情况,调度器设计了基于比率R的公平资源分配 方法(设集群中资源总量为totalSlots): u1 如果一个pool的demandweight,则该pool的 fairShare=minSha

16、re u3 除此之外,所有pool的fairShare=R*weight u4 所有pool的的fairShare之和应为totalSlots通过以上算法计算出的公平共享量即为“公平调度器”的“ 公平”含义之所在,应尽量保证每个pool获取的资源量为 fairshare,如果一定时间期限内达不到,则抢占资源。关于 这个R是不是一定满足条件4,有资料显示一定存在这个样的R 。公平调度器的实现调度流程新版本的Hadoop采用公平调度器的层次调度算法,首先选 择一个pool,然后从该pool中选择一个job,最后从该job中选 择一个locality的task。 公平调度器的实现一些特性1. 资源抢占 u当一定时间(管理员可配置)内,某个pool中获取的资源量少 于最小共享量,或者公平共享量的一半,则调度器会找出哪个 pool抢占了该pool的资源,并杀死相应数量的task以抢占资源 。 u之所以要进行抢占,还是为了“公平”,即:保证每个pool能获 取到它应得到的资源。2.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号