随着MapReduce等技术的发展,其开源实现Hadoop也变得越来越受推崇。在Hadoop系统中调度器是非常重要的核心组件之一,它能够将系统中空闲的资源遵循作业策略分配给不同任务。调度器在Hadoop中是一个可插拔的组件模块,开发者需要根据自己的实际应用需求对调度器进行设计和配置。Hadoop中有三种调度器最为常见,分别如下。
1.默认FIFO调度器
FIFO调度器是Hadoop中的默认调度器,按照作业到达的先后顺序和任务的优先级高低,也就是先入先出策略选择将要被执行的作业。
2.Capacity Scheduler计算能力调度器
计算能力调度器支持多个计算任务队列,每个队列可以配置一定的计算资源,每个队列内使用Hadoop的FIFO调度策略作为默认的调度,目的是防止同一用户的工作占用队列中的所有资源,避免调度程序把所有的资源分配给同一个用户提交计算任务作业,将这些资源的数量进行一定程度的限制。进行调度的步骤如下。
第一步选择队列:计算每个队列中运行的任务数与应分配的计算资源之间的比率。根据该策略,选择比例最小的队列作为下一个执行队列。
第二步作业选择:在按照前面的策略选择队列后,根据作业的优先级和到达的顺序选择下一个要执行的作业。(www.daowen.com)
除了以上两条规则外,还需要考虑用户资源限制和内存限制。
3.公平调度器Fair Scheduler
公平调度器支持多队列多用户,每个队列中的资源量可以配置,每个队列即每个用户拥有相同数量的资源,而不管他们提交的作业数是否相同,同一队列中的作业公平共享队列中所有资源。用户也可以给予每个作业相应的权重,以不按比例的方式共享资源。
4.YARN
Apache Hadoop YARN是一个新的Hadoop资源管理器,允许用户在同一个物理集群上运行和管理多个作业。例如,MapReduce批量处理和图形处理作业的引入,为集群在资源利用、资源统一管理和数据共享方面带来了巨大的好处。这不仅合并了组织管理的系统的数量,而且还允许对相同的数据执行不同类型的数据分析。在某些情况下,整个数据流可以在同一台集群机器上执行。它是一个通用的资源管理系统,可以为上层应用提供统一的资源管理和调度。它的引入为集群的利用、统一的资源管理和数据共享等方面带来了巨大的效益。
YARN一开始是对MapReduce的改进,具有可伸缩性(支持10,000个节点和200,000个核的集群)、可靠性和更高的集群利用率。在某种意义上,YARN是一个负责集群资源管理的云计算系统。在操作系统上可以开发各种应用程序,如批量处理MapReduce和实时服务Storm。这些应用程序可以利用Hadoop集群的计算能力和丰富的数据存储模型,共享同一个Hadoop集群和驻留在集群上的数据。此外,这些新框架可以利用YARN的资源管理器来提供新的应用管理器实现。值得注意的是,YARN的不同服务组件的通信方式使用了事件驱动的异步并发机制来简化系统的设计。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。