使用默认队列

i7uaboj4  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(277)

当hadoop容量调度器仅用于一个队列(默认值)时,hadoop如何调度该作业中的不同作业?是先进先出吗?它有不同的机制吗?
在使用fair调度器时,这种行为有什么不同吗?

sd2nnvve

sd2nnvve1#

来自cloudera老文章(hadoop 1.x):
一旦选择了一个队列,调度程序就会在队列中选择一个作业。作业根据提交时间和优先级(如果队列支持优先级)进行排序。
按顺序考虑工作,以及 a job is selected if its user is within the user-quota for the queue ,即用户尚未使用超过其限制的队列资源。调度器还确保tasktracker中有足够的可用内存来tun作业的任务,以防作业有特殊的内存需求。
一旦选择了一个作业,调度程序就会选择一个要运行的任务。与早期版本相比,选择任务的逻辑保持不变。
来自capacityscheduler上的apache官方文档: Resource-based Scheduling -支持资源密集型应用程序,在应用程序中可以选择指定比默认值更高的资源需求,这是通过容纳具有不同资源需求的应用程序实现的。 Currently, memory is the the resource requirement supported .
来自fairscheduler上的apache官方文档:
公平调度是一种将资源分配给应用程序的方法,这样所有应用程序在一段时间内平均获得相等的资源份额。hadoopnextgen能够调度多种资源类型。默认情况下,公平调度器仅基于内存来调度公平性决策。它可以配置为同时使用内存和cpu进行调度,使用ghodsi等人提出的主导资源公平性的概念
在每个队列中,调度策略用于在运行的应用程序之间共享资源。 The default is memory-based fair sharing, but FIFO and multi-resource with Dominant Resource Fairness can also be configured . 队列可以按层次结构排列以划分资源,并配置权重以按特定比例共享集群。

相关问题