关闭

Hadoop之CapacityScheduler队列管理的使用

标签: hadoopqueue队列管理yarn-xmlmap-reduce
151人阅读 评论(0) 收藏 举报
分类:

关于在本地hadoop伪分布式环境下配置队列管理运算资源的问题记录
首先:照下面这个文章配置
Hadoop 设置队列计算能力调度器应用和配置
于是更改mapred.xml,配置capacity-scheduler.xml,配置完成后发现,在代码或者终端里加入队列名称,均显示找不到,后来看到该配置文件同级目录下有一个mapred-queues.xml文件,于是再抱有一丝希望的改了文件中的队列名测试下,发现还是没用,然后看到有说mapreduce取消了队列管理,代替以统一资源池什么的,
然后:继续搜索到下面一篇
关于YARN Node Labels的一点理解
还有这篇(主要参考):
hadoop 2.7.2 yarn中文文档—— Capacity Scheduler
capacityscheduler作为一个可插拔的hadoop调度器,允许多租户安全的共享一个大的集群,在资源分配有限的条件下适时的为应用程序分配资源,在操作友好的方式下最大化集群吞吐量和利用率。
最后:以下是经过测试的正确配置步骤
1、yarn-site.xml添加属性

<!-- 配置ResouceManager使用CapacityScheduler -->
<property>
    <name>yarn.resourcemanager.scheduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>

2、capacity-scheduler.xml
添加root下两个子队列,默认只有default

<property>
    <name>yarn.scheduler.capacity.root.queues</name>
    <value>default,xm,rp</value>
    <description>
      The queues at the this level (root is the root queue).
    </description>
  </property>

参考default的配置,添加配置xm rp子队列
注意这三个参数的配置(如果有的话)minshare,maxshare,maxrunningapp
要特别注意下面这个配置

<property>
    <name>yarn.scheduler.capacity.root.default.capacity</name>
    <value>40</value>
    <description>Default queue target capacity.</description>
  </property>

这个值一定要保证三个队列的值加起来等于100,否则会无法启动resourceManager,同时会报错Illegal capacity of 1.9000001 for children of queue root…
3、执行start-yarn.sh启动resourceManager,如果是修改了队列信息,可以执行刷新队列的命令:

yarn rmadmin -refreshQueues 

4、为任务设置队列
第一种,通过conf设置:

configuration.set("mapreduce.job.queuename","xm");

第二种,通过-D命令:

-Dmapreduce.job.queuename=rp

添加了以后发现并没有效果,后来发现如果使用这种方式的话,那么hadoop的代码最好使用下面的格式,这种格式比较适用于shell脚本的运行方式,如果用hadoop jar命令行方式,那这个-D命令得加在jar包后面,如果使用ProgramDriver的话,还得加在类别名的后面才能正常拿到参数值。

public class Main extends Configured implements Tool {
    private final Logger logger = LoggerFactory.getLogger(Main.class);

    @Override
    public int run(String[] args) throws Exception {
        Configuration conf = getConf();

        String queue = conf.get("mapreduce.job.queuename");
        conf.set("mapreduce.job.queuename", queue);
        ......
}
}

public static void main(String[] args) throws Exception {

        if (args.length < 7) {
            System.exit(1);
        }
        int status = ToolRunner.run(new Configuration(), new Start(), args);
        System.exit(status);
    }

5、web截图效果
以下是同时执行了三个任务,三个任务的区别只是队列名不同,之前在没做以上这样的配置的时候,只执行一个任务的时候,就会占满所有的资源,其他任务只能排队等待,现在经过队列配置后,资源有了最大利用限制,就不会出现只执行某一个耗时的任务就占满所有资源的情况,提高了资源利用率。
这里写图片描述

以下是只执行一个耗时任务的截图,可以看到子队列xm被使用了166.7%
这里写图片描述

0
0
查看评论

Hadoop 2:Capacity Scheduler配置项说明

yarn.scheduler.capacity.A.capacity 队列A的最低保障容量(百分比)(所有队列总和相加为100) yarn.scheduler.capacity.A.maximum-capacity 队列A可以获取到的最大容量(不予保障)(集群空闲时从其他队列借取) ...
  • azhao_dn
  • azhao_dn
  • 2015-05-14 14:57
  • 5811

Hadoop系列(5)之容量调度器Capacity Scheduler配置

1. 应用场景 本文只关注配置,关于调度器的算法以及核心内容将在下一篇介绍。 Capacity Scheduler是YARN中默认的资源调度器,但是在默认情况下只有root.default 一个queue。而当不同用户提交任务时,任务都会在这个队里里面按优先级先进先出,大大影响了多用户的资源使...
  • lantian0802
  • lantian0802
  • 2016-07-15 14:55
  • 2089

Hadoop应用-------Hadoop计算能力调度器(Capacity Scheduler)应用和配置{hadoop mradmin -refreshQueues动态更新队列和容量}其他调度器比较

文章来源:http://www.cnblogs.com/ggjucheng/archive/2012/07/25/2608817.html Hadoop计算能力调度器应用和配置 需求 公司里有两个部门,一个叫hive,一个叫pig,这两个部门都需要使用公司里的hadoop集群。于是问题来...
  • buster2014
  • buster2014
  • 2015-10-25 07:26
  • 627

hadoop Capacity Scheduler计算能力调度器配置

计算能力调度器介绍 Capacity Scheduler支持以下特性: (1) 计算能力保证。支持多个队列,某个作业可被提交到某一个队列中。每个队列会配置一定比例的计算资源,且所有提交到队列中的作业共享该队列中的资源。 (2) 灵活性。空闲资源会被分配给那些未达到资源使用上限的...
  • jiedushi
  • jiedushi
  • 2012-08-29 15:25
  • 5895

Hadoop单机版安装

以前对Hadoop有过一点了解,但没有深入,现在越来越感觉这东西挺有意思的,打算学习下,前两天买了两本Hadoop相关的书,先粗略的翻了下,今天就动手先把环境搭起来。       环境:centos6.2,jdk7_u45,hadoop2.2.0   ...
  • jarth
  • jarth
  • 2016-09-29 17:38
  • 314

hadoop队列管理(指定queue跑程序)

Hadoop 队列管理: 配置Queue相关信息 •配置属性在mapre-site.xml 配置Queue的相关信息  mapred.acls.enabled  true  mapred.queue.names  test,default 属性mapr...
  • longshenlmj
  • longshenlmj
  • 2014-09-09 18:01
  • 9822

Fair Scheduler 队列设置

先附一个官网链接 由于yarn只能使用一种调度器,所以要想使用Fair Scheduler首先要在yarn-site.xml中将配置参数 yarn.resourcemanager.scheduler.class 设置为 org.apache.hadoop.yarn.server.resourcema...
  • lumingkui1990
  • lumingkui1990
  • 2016-08-10 17:15
  • 813

Hadoop-1.1.2、HBase-0.94.7完全分布式集群搭建

能够将热爱的技术应用于实际生活生产中,是做技术人员向往和乐之不疲的事。            现将前期手里面的一个项目做一个大致的总结,与大家一起分享、交流、进步。项目现在正在线上运行,项目名——基于Hadoop的数据分析综合管理平台。 &...
  • wl101yjx
  • wl101yjx
  • 2014-05-02 11:18
  • 5043

Hadoop 设置队列计算能力调度器应用和配置

http://www.cnblogs.com/ggjucheng/archive/2012/07/25/2608817.html 需求 公司里有两个部门,一个叫hive,一个叫pig,这两个部门都需要使用公司里的hadoop集群。于是问题来了,因为hadoop默认是FIFO调度的,谁...
  • beyondlpf
  • beyondlpf
  • 2015-06-08 13:48
  • 1608

Hadoop 设置任务执行的队列以及优先级和其他 配置

作业提交到的队列:mapreduce.job.queuename 作业优先级:mapreduce.job.priority Pig版本: SET mapreduce.job.queuename root.etl.distcp; SET mapreduce.job.pr...
  • liyantianmin
  • liyantianmin
  • 2015-10-28 10:33
  • 2105
    个人资料
    • 访问:177215次
    • 积分:2801
    • 等级:
    • 排名:第15119名
    • 原创:58篇
    • 转载:5篇
    • 译文:0篇
    • 评论:52条
    联系我吧
    我的App
    博客专栏
    文章分类