09-大象调度规则-作业调度

Hadoop调度器-Hadoop作业调度

本章目标

  1. Hadoop调度器

1 Hadoop调度器

本节我们将介绍Hadoop调度器,首先,我们将了解什么是调度器,然后介绍Hadoop中调度器的类型,我们还会介绍每种调度器适合在何时使用,才能进行简单而高效的调度。最后,我们将进一步讨论Hadoop调度的开发以及调度方式。

什么是Hadoop调度器

Hadoop就是一个能够在分布式节点上高效完成处理任务的通用系统。它是一个多任务系统,它能够处理多个用户同时提交的任务,并且同时处理多个数据集。以前的Hadoop有一个调度器,混合了JobTracker逻辑,对于传统的Hadoop批处理作业(比如,日志挖掘和Web索引),这种实现方式是比较完美的。但是这种方式不够灵活,很难调整。对于调度用户作业,以前的Hadoop版本使用了一种非常简单的方式。通常使用Hadoop FIFO scheduler(先进先出调度器),它们按顺序处理提交的作业。此外,可以使用mapred.job.priority属性或者在JobClient使用setJobPriority() 方法,来控制作业的优先级。这种作业调度器会在选择下一个要运行的作业时,会选择优先级最高的作业。但是,在Hadoop的FIFO调度器中,优先级不支持抢占模式,因此,当一个低优先级的作业在高优先级作业之前就已经开始,那么高优先级的作业仍旧处于阻塞状态。另外,在Hadoop中,MapReduce可以选择调度器,比如,Hadoop FIFO调度器,以及多用户调度器,比如Hadoop的公平调度器(Fair Scheduler),计算能力调度器(Capacity Scheduler)。

Hadoop调度器类型

在Hadoop中可以使用如下类型的调度器:

在这里插入图片描述

Hadoop FIFO调度器

在JobTracker中集成的最原始的Hadoop作业调度算法就是FIFO。通常是这样的一个过程,JobTracker从工作队列中提取作业,首先取到的作业时最先放到队列中的作业。这就是Hadoop的FIFO(先进先出)调度。这是最简单而且效率高的方式,它没有优先级和作业大小的概念。

Hadoop Fair Scheduler(Hadoop公平调度器)

更进一步,为了从时间的角度,给每个用户一个公平分享集群的能力,我们可以使用Hadoop中的公平调度器(Fair Scheduler)。如果只有一个作业运行,它可以使用整个Hadoop集群的资源。更进一步,如果有多个作业提交,就会为作业提供一些自由任务槽(free task slots),通过这种方式,每位用户可以公平分享集群。

如果资源池没有在特定时间间隔内没有收到公平分享要求,那么Hadoop Fair Scheduler(Hadoop公平调度器),则支持优先抢占策略。因此,调度器会杀死资源池中超出任务槽分配能力的任务。

另外,这是一个开发者贡献的模块,因此,需要从Hadoop的control/fair scheduler目录拷贝JAR文件到lib目录,并且把JAR文件放到Hadoop类路径中,要启用它,需要将mapred.jobtracker.taskScheduler属性设置为:org.apache.hadoop.mapred.FairScheduler

Hadoop Capacity Scheduler(Hadoop能力调度器)

事实上,在每个队列中,Hadoop都是以FIFO(先进先出)配以优先策略来调度作业,除了这种方式之外,就是和公平调度器类似的Hadoop能力调度器。它采用了稍微不同的方式来做多用户调度。对于每个用户或者组织来说,它可以模拟一个单独的具有FIFO调度的MapReduce集群。

Hadoop的其他调度方式

除了调度器之外,Hadoop还提供了这样一种概念,它在大型物理集群上提供虚拟集群,这也叫做HOD(Hadoop On Demand)。它使用Torque资源管理器在虚拟集群上分配节点。HOD系统会在虚拟集群上初始化节点上的系统,然后分配节点,准备配置文件等,这些均自动完成。在完成初始化之后,我们也可以相对独立地使用HOD虚拟集群。换句话说,我们把这种在云结构中部署一个Hadoop集群的有趣方式叫做HOD。它由于更少的共享节点,从而提供了更好的安全性。

每种调度器的应用场合

当我们运行一个大型Hadoop集群,而拥有众多客户端时,我们为了保证可以重用未使用的资源,在队列中保证一些作业优先执行,这时,我们可以考虑使用能力调度器(capacity scheduler)。

对于一个组织,负载有限,但是同时具备大型和小型集群资源,这时,我们可以考虑公平调度器(fair scheduler)。通过简单而少量配置,它提供了动态分配作业池的能力。而且,对于小型作业和大型作业混合的情形,它也能够提供快速的响应时间。因此,它适合变化多样的作业需求。

总结

本节我们详细讨论了Hadoop调度器。讨论了调度器的类型及其适用场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值