问题导读
1、Capacity Scheduler支持哪些特性?
2、执行什么命令可以重新加载配置项?
3、如何使用队列?
计算能力调度器介绍
Capacity Scheduler支持以下特性:
(1) 计算能力保证。支持多个队列,某个作业可被提交到某一个队列中。每个队列会配置一定比例的计算资源,且所有提交到队列中的作业共享该队列中的资源。
(2) 灵活性。空闲资源会被分配给那些未达到资源使用上限的队列,当某个未达到资源的队列需要资源时,一旦出现空闲资源资源,便会分配给他们。
(3) 支持优先级。队列支持作业优先级调度(默认是FIFO)
(4) 多重租赁。综合考虑多种约束防止单个作业、用户或者队列独占队列或者集群中的资源。
(5) 基于资源的调度。 支持资源密集型作业,允许作业使用的资源量高于默认值,进而可容纳不同资源需求的作业。不过,当前仅支持内存资源的调度。
配置方法为
1. 复制$HADOOP_HOME/contrib/capacity-scheduler/hadoop-capacity-scheduler.jar 到$HADOOP_HOME/lib目录中
2. 修改namenode节点中的conf/mapred-site.xml文件
复制代码
保存文件后,重启jobtracker
以后修改capacity-scheduler.xml文件后只需要执行命令hadoop mradmin -refreshQueues 就可以重新加载配置项。
4. 最后,如何使用该队列呢:
mapreduce:在Job的代码中,设置Job属于的队列,例如hive:
- conf.setQueueName("hive");
复制代码
hive:在执行hive任务时,设置hive属于的队列,例如hive:
- set mapred.job.queue.name=hive;
复制代码
设置队列的任务名称
- set mapred.job.name=hadooptest;
复制代码
设置队列的优先级别
- set mapred.job.priority=HIGH;
复制代码
本文转载自:http://blog.csdn.net/jiedushi/article/details/7920455
|