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

时间:2021-12-04 05:50:04

hadoop 升级到cdh5后,队列管理被取消,而是统一用资源池分配。

hadoop2.0版本,Hadoop采用了平级队列组织方式,,管理员可将用户分到若干个扁平队列中,在每个队列中,可指定一个或几个队列管理员管理这些用户,比如杀死任意用户的作业,修改任意用户作业的优先级。

但这还不够,需要将资源划分到这几个队列中,并按照一定的策略完成资源分配,这就需要Hadoop作业调度器的支持。

总之,在Hadoop中,队列的组织是队列管理和资源分配的基础。

线上环境,设置成三个队列,分别是default,queue1,queue2,queue3。

在编写代码时,设定

Configuration conf = new Configuration();

conf.set("mapred.job.queue.name", "queue3");

使用queue3跑程序,任务少,资源相对充足。

Hadoop 队列管理:

配置Queue相关信息

•配置属性在mapre-site.xml

配置Queue的相关信息

<property>

<name>mapred.acls.enabled</name>

<value>true</value>

</property>

<property>

<name>mapred.queue.names</name>

<value>test,default</value>

</property> 属性mapred.queue.names 是 queue 的所有名字,在这一名字中,必须有一个叫“ default”的 queue

<property>

<name>mapred.queue.my_queue.acl-submit-job</name>

<value> test</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>

mapred.queue.names是queue的所有名字

•必须有一个叫“default”的queue

• mapred.queue.<queue-name>.acl-submit-job,指定哪些user或者group可以向该queue中提交作业

•mapred.queue.<queue-name>.acl-administer-jobs,指定哪些user或者group可以管理该queue中的所有作业。

• 每个queue拥有的资源量和其他信息,在其他配置文件里指定

• mapred.queue.<queue-name>.acl-submit-job和mapred.queue.<queue-name>.acl-administer-jobs配置方法如下:

用户和用户组之间用空格分开,用户之间用“,”分割,用户组之间用“,”分割,如果queue的属性值中只有用户组,则前面保留一个空格。