首页 > 新闻详情

成都大数据培训分享MapReduce作业调度

来源:成都大数据培训机构

时间: 2018/3/17 9:52:47

可以通过设置mapred.job.priority属性或JobClient的setJobPriority()方法来设置级(在这两种方法中,可以选VERY_HIGH,HIGH,NORMAL,LOW,VERY_LOW中的任何值作为级)。在作业调度器选择要运行的下一个作业时,选择的是级高的作业。然而,在FIFO调度算法中,级并不支持选择,所以的作业任然受阻于此前已经开始的,长时间运行的低级的作业。MR1的默认调度器是初基于队列的FIFO调度器,还有两个多用户调度器,分别为公平调度器和容量调度器。


01、公平调度器

公平调度器的目标是让每个用户公平共享集群能力。如果只有一个作业在运行,就会得到集群的所有资源。随着提交的作业越来越多,闲置的任务槽会以“让每个用户公平共享集群”这种方式进行分配。某个用户的耗时短的作业将在合理的时间内完成,即便另一个用户的长时间作业正在运行而且还在运行过程中。 作业都放在作业池中,在默认情况下,每个用户都有自己的作业池。提交作业数较多的用户,不会因此而获得更多的集群资源。可以用map和reduce的任务槽数来定制作业池的小容量,也可以设置每个池的权重。 公平调度器支持选择机制,所以,如果一个池在特定的一段时间内未能公平共享资源,就会中止运行池中得到过多资源的任务,把空出来的任务槽让给运行资源不足的作业池。 公平调度器是一个后续模块。要使用它,需要将其JAR文件放在HADOOP的类路径,即将它从Hadoop的contrib/fairscheduler目录复制到lib目录。随后,像下面这样设置mapred.jobtracker.taskScheduler属性: org.apache.hadoop.mapred.FairScheduler

02、容量调度器

集群由很多队列组成(类似于公平调度器的任务池),这些队列可能是层次结构的(因此,一个队列可能是另一个队列的子队列),每个队列被分配有一定的容量。这一点与公平调度器类似,只不过在每个队列内部,作业根据FIFO方式(考虑级)进行调度。本质上,容量调度器允许用户或组织(使用队列进行定义)为每个用户或组织模拟出一个使用FIFO调度策略的独立MR集群。相比之下,公平调度器(实际上也支持作业池内的FIFO作业调度,使其类似于容量调度器)强制每个池内公平共享,使运行的作业共享池的资源。

成都加米谷大数据培训机构是一家专注于大数据培训机构。面向个人提供大数据数据分析、人工智能等前沿技术的培训业务。面向行业企业提供大数据及人工智能技术内训服务、大数据及人工智能技术咨询服务、大数据及人工智能行业咨询规划服务等多项配套服务。

优先领取试听课
版权所有:搜学搜课(wwww.soxsok com)