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的属性值中只有用户组,则前面保留一个空格。
CIO之家 www.ciozj.com 公众号:imciow