🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
Capacity 调度器允许多个组织共享整个集群,每个组织可以获得集群的一部分计算能力。通过为每个组织分配专门的队列,然后再为每个队列分配一定的集群资源,这样整个集群就可以通过设置多个队列的方式给多个组织提供服务了。除此之外,队列内部又可以垂直划分,这样一个组织内部的多个成员就可以共享这个队列资源了,在一个队列内部,资源的调度是采用的是先进先出(FIFO)策略。<br/> <ins>支持多个队列,每个队列可配置一定的资源量,每个队列都采用 FIFO 调度策略。</ins><br/> 为了防止同一个用户的作业独占队列中的资源,该调度器会对同一用户提交的作业所占资源量进行限定。<br/> 按照作业优先级和提交时间顺序,同时考虑用户资源量限制和内存限制对队列内任务排序。多个队列同时按照任务的先后顺序依次执行,也就是排在队列前面的最先执行,也是同时执行。 ![](https://img.kancloud.cn/29/bb/29bb5a24726bb0c8113be1823e930fc5_1081x392.png) 容量调度器配置方式如下 (1)将$HADOOP_HOME/etc/hadoop/中的对应 capacity-scheduler.xml 配置文件备份到其它目录。 (2)在目录$HADOOP_HOME/etc/hadoop/中建立一个新的capacity-scheduler.xml;内容如下: ```xml <?xml version="1.0" encoding="utf-8"?> <configuration> <property> <name>yarn.scheduler.capacity.root.queues</name> <value>prod,dev</value> </property> <property> <name>yarn.scheduler.capacity.root.dev.queues</name> <value>hdp,spark</value> </property> <property> <name>yarn.scheduler.capacity.root.prod.capacity</name> <value>40</value> </property> <property> <name>yarn.scheduler.capacity.root.dev.capacity</name> <value>60</value> </property> <property> <name>yarn.scheduler.capacity.root.dev.maximum-capacity</name> <value>75</value> </property> <property> <name>yarn.scheduler.capacity.root.dev.hdp.capacity</name> <value>50</value> </property> <property> <name>yarn.scheduler.capacity.root.dev.spark.capacity</name> <value>50</value> </property> </configuration> ``` (3)将该文件分发到集群。 将应用放置在哪个队列中,取决于应用本身。例如 MapReduce 程序,可以通过设置属性 mapreduce.job.queuename 指定相应队列。如果指定的队列不存在,则发生错误。如果不指定,默认使用`default`队列。