10.7 小结

本章介绍了几种常见的多用户作业调度器。相比于FIFO调度器,多用户调度器能够更好地满足不同应用程序的服务质量要求。

当前主要有两种多用户作业调度器的设计思路:第一种是在一个物理集群上虚拟多个Hadoop集群,这些集群各自拥有全套独立的Hadoop服务,比如JobTracker、TaskTracker等,典型的代表是HOD(Hadoop On Demand)调度器;另一种是扩展Hadoop调度器,使之支持多个队列多用户,典型的代表是Yahoo!的Capacity Scheduler和Facebook的Fair Scheduler。本章分别对这两种调度器进行了介绍。

HOD调度器是一个在共享物理集群上管理若干个Hadoop集群的工具,它可以帮助用户在一个共享物理集群上快速搭建若干个独立的虚拟Hadoop集群。由于该调度器会产生多个独立的小集群,因此会增加集群运维成本和降低资源利用率。

为了克服HOD的缺点,Capacity Scheduler和Fair Scheduler出现了。它们通过扩展调度器功能,在不拆分集群的前提下,将集群中的资源和用户分成若干个队列,并为每个队列分配一定量的资源,同时添加各种限制以防止用户或者队列独占资源。由于这种方式能够保证只有一个Hadoop集群,因此可大大降低运维成本,同时很容易实现资源共享,进而可明显提高资源利用率。