hadoop配置fair-scheduler的方法

hadoop有以下几种调度方法

1,FIFO(先进先出调度器)这种是hadoop默认的调度

2,capacity-scheduler(计算能力调度器)

3,fair-scheduler(公平调度器)。

以下是fair-scheduler的配置方法。

1. 将HADOOP_HOME/contrib/fairscheduler的jar包考入到HADOOP_HOME/lib下
例如:cp ${HADOOP_HOME}/contrib/*fair*scheduler* ${HADOOP_HOME}/lib/
PS:hadoop 1.2以上的jar包已经配置好
2. 配置queue相关信息
<property>
<name>mapred.acls.enabled</name>
<value>true</value>
</property>
<property>
<name>mapred.queue.names</name>
<value>hadoop,default</value>
</property>
<property>
<name>mapred.queue.hadoop.acl-submit-job</name>
<value>christopher</value>
</property>
<property>
<name>mapred.queue.default.acl-administer-jobs</name>
<value></value>
</property>
<property>
<name>mapred.queue.my_queue.acl-administer-jobs</name>
<value></value>
</property>
说明:
【1】 属性mapred.queue.names是queue的所有名字,在这一名字中,必须有一个叫“default”的
queue
【2】 每个queue均有一个属性mapred.queue.<queue-name>.acl-submit-job,用于指定哪些user或
者group可以向该queue中提交作业
【3】 每个queue均有一个属性mapred.queue.<queue-name>.acl-administer-jobs,用于指定哪些
user或者group可以管理该queue中的所有作业,即可以kill作业,查看task运行状态。一般而言,对于
每个队列,该选项为空即可,表示每个user只能管理自己的作业。
【4】 每个queue拥有的资源量和其他信息均在另外一个配置文件中指定(对于公平调度器,可
以在fair-scheduler.xml中指定)
【5】 mapred.queue.<queue-name>.acl-submit-job和mapred.queue.<queue-name>.acl-administer-jobs
配置方法如下:
用户和用户组之间用空格分开,用户之间用“,”分割,用户组之间用“,”分割,如果queue
的属性值中只有用户组,则前面保留一个空格。
3. 配置mapred-site.xml
<property>
<name>mapred.jobtracker.taskScheduler</name>
<value>org.apache.hadoop.mapred.FairScheduler</value>
</property>
<property>
<name>mapred.fairscheduler.poolnameproperty</name>
<value>mapred.job.queue.name</value>
</property>
<property>
<name>mapred.fairscheduler.allocation.file</name>
<value>HADOOP_HOME/conf/fair-scheduler.xml</value>
</property>
说明:
mapred.fairscheduler.poolnameproperty有三个可用值:默认情况下是user.name,即每个用
户独自一个pool;group.name,即一个linux group一个pool,mapred.job.queue.name,
即一个queue一个pool,如果要支持“作业管理”,需使用最后一种配置。
4. 配置fair-scheduler.xml
<?xml version="1.0"?>
<!--
This file contains pool and user allocations for the Fair Scheduler.
Its format is explained in the Fair Scheduler documentation at
http://hadoop.apache.org/common/docs/r0.20.205.0/fair_scheduler.html.
The documentation also includes a sample config file.
-->
<allocations>
<pool name="hadoop">
<minMaps>2</minMaps>
<minReduces>2</minReduces>
<maxMaps>10</maxMaps>
<maxReduces>10</maxReduces>
<minSharePreemptionTimeout>300</minSharePreemptionTimeout>
</pool>
<user name="christopher">
<maxRunningJobs>3</maxRunningJobs>
</user>
</allocations>
说明:
【1】各个字段的含义
<pool></pool>之间配置的是每个pool的信息,主要如下:
(a) minMaps:该pool可使用的map slot数
(b) minReduces:该pool可使用的reduce slot数
(c) maxRunningJobs:该pool最大运行作业数
(d) minSharePreemptionTimeout:该pool抢占资源的时间间隔,即本属于自己的资源在改时间内拿不
到便会抢占。
(e) Weight:pool的权重,该值越大,能够从共享区(有一些pool中的资源用不完,会共享给其他
pool)中获取的资源越多。
<user></user>之间配置某个用户的约束:
maxRunningJobs:该用户可同时运行的作业数
<poolMaxJobsDefault></poolMaxJobsDefault>之间配置默认情况下每个pool最大运行作业数
<userMaxJobsDefault></userMaxJobsDefault>之间配置默认情况下每个user最大运行作业数
……

【2】 该配置文件中可动态修改无需重启Hadoop(修改后3s会被重新加载)

[3] 在执行hive任务时,设置hive属于的队列set mapred.queue.name=hadoop; (set
 mapred.job.queue.name=hadoop;)
设置hive的任务名称set mapred.job.name=goldts;
设置任务的优先级别set mapred.job.priority=HIGH;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值