hadoop中如何动态更新集群队列和容量
2018-04-17 15:42 Justinyangbigdata 阅读(911) 评论(0) 编辑 收藏 举报1.集群默认是FIFO容量调度器,有的时候不同的业务部门都需要使用hadoop集群,那么这时候就需要来设置容量调度器了,如何平衡各个部门的容量.合理利用资源?
首先配置调度器需要在修改两个配置文件,分别是mapred-site.xml.里面主要有两个参数,其中第二个mapred.queue.names就是用来添加业务部门,比如有hive hbase等 就添加进去,用逗号隔开
<property>
<name>mapred.jobtracker.taskScheduler</name> <value>org.apache.hadoop.mapred.CapacityTaskScheduler</value> </property> <property> <name>mapred.queue.names</name> <value>default</value> </property>
其次capacity-scheduler.xml文件中添加对应的配置和权限
属性mapred.capacity-scheduler.queue.hive.capacity的value决定了队列的容量比值
<property> <name>mapred.capacity-scheduler.queue.hive.capacity</name> <value>40</value> <description>Percentage of the number of slots in the cluster that are to be available for jobs in this queue. </description> </property> <property> <name>mapred.capacity-scheduler.queue.hive.maximum-capacity</name> <value>-1</value> <description> </description> </property> <property> <name>mapred.capacity-scheduler.queue.hive.supports-priority</name> <value>true</value> <description></description> </property> <property> <name>mapred.capacity-scheduler.queue.hive.minimum-user-limit-percent</name> <value>100</value> <description> </description> </property> <property> <name>mapred.capacity-scheduler.queue.hive.user-limit-factor</name> <value>3</value> <description></description> </property> <property> <name>mapred.capacity-scheduler.queue.hive.maximum-initialized-active-tasks</name> <value>200000</value> <description></description> </property> <property> <name>mapred.capacity-scheduler.queue.hive.maximum-initialized-active-tasks-per-user</name> <value>100000</value> <description></description> </property> <property> <name>mapred.capacity-scheduler.queue.hive.init-accept-jobs-factor</name> <value>10</value> <description></description> </property>
那么如何动态的更新集群的动态和容量呢?
1.主节点修改好mapred-site.xml和capacity-scheduler.xml
2.把配置同步到所有节点上
3.使用hadoop用户执行命令:hadoop mradmin -refreshQueues
这样就可以不重启并且动态修改集群的队列及其容量配置.刷新mapreduce的web管理控制台可以看到结果。
注意:如果配置没有同步到所有的节点,一些队列会无法启用。