,,,,
背景
纱默认使用的是最简单的FIFO调度器,即一个默认队列,所有用户共享,分配资源也是先到先得,没有优先级之分。有时一两个任务就把资源全占了,其他任务吃不到资源造成饥饿,显然这样的资源分配是不合理的(在当今社会主义之中,我们要共同富裕啊).yarn还有两种资源调度器,产能计划和公平的安排,本文主要研究下容量计划。
什么是容量计划
能力计划调度器以队列为单位划分资源。简单通俗点来说,就是一个个队列有独立的资源,队列的结构和资源是可以进行配置的,如下图:
& lt; property>
,,,& lt; name> yarn.resourcemanager.scheduler.class,,,
,,,& lt; value> org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler & lt;/property>
配置队列
调度器的核心就是队列的分配和使用了,修改conf/capacity-scheduler。xml可以配置队列。
能力调度器默认有一个预定义的队列根,所有的队列都是它的子队列。队列的分配支持层次化的配置,使用。来进行分割,比如yarn.scheduler.capacity。<代码> & lt; queue-path>> 代码。队列
下面是配置的样例,比如根下面有三个子队列:
& lt; property> & lt;才能name> yarn.scheduler.capacity.root.queues</name> & lt;才能value> a, b, c & lt;才能description>从而queues at 从而却;能够level (root is 从而root 队列)。 & lt;才能/description> & lt;/property> & lt; property> & lt;才能name> yarn.scheduler.capacity.root.a.queues</name> & lt;才能value> a1, a2 & lt;才能description>从而queues at 从而却;能够level (root is 从而root 队列)。 & lt;才能/description> & lt;/property> & lt; property> & lt;才能name> yarn.scheduler.capacity.root.b.queues</name> & lt;才能value> b1, b2, b3 & lt;才能description>从而queues at 从而却;能够level (root is 从而root 队列)。 & lt;才能/description> & lt;/property>
队列属性
yarn.scheduler.capacity灵活;queue-path>。能力
它是队列的资源容量占比(百分比)。系统繁忙时,每个队列都应该得到设置的量的资源,当系统空闲时,该队列的资源则可以被其他的队列使用。同一层的所有队列加起来必须是100%。