Hello, implemented capacity scheduler in my hadoop env (3 node clsuster) with below listed queues. Also assigned certain users to queues, but when I am running job as one of the user assigned to a particular queue the job is running under default queue rather than the assigned queue. When I am running the job I am not specifying the queue in the MR Job command line.
But when the job is run by mentioning the assigned queue using –D mapreduce.job.queuename, then it runs under the mentioned queue.
Tried with fair scheduler as well and found the same behavior.
My understanding is once these queues are defined and users allocated to them. And when users run the jobs, the jobs should automatically (without the need to change the jobs to specify the queue name) get assigned to allocated queues. Please let me know if this is not how it works.
[root@xxxxxxxx ~]# cat /etc/gphd/hadoop/conf/fair-scheduler.xml
<allocations>
<queue name=”default”>
<minResources>14417mb,22vcores</minResources>
<maxResources>1441792mb,132vcores</maxResources>
<maxRunningApps>50</maxRunningApps>
<weight>10</weight>
<schedulingPolicy>fifo</schedulingPolicy>
<minSharePreemptionTimeout>300</minSharePreemptionTimeout>
</queue>
<queue name=”framework”>
<minResources>14417mb, 88vcores</minResources>
<maxResources>1441792mb, 132vcores</maxResources>
<maxRunningApps>5</maxRunningApps>
<weight>30</weight>
<schedulingPolicy>fair</schedulingPolicy>
<minSharePreemptionTimeout>300</minSharePreemptionTimeout>
<aclSubmitApps>userx,svc_cpsi_s1,svc_pusd_s1,svc_ssyr_s1,svc_susd_s1</aclSubmitApps>
</queue>
<queue name=”transformation”>
<minResources>14417mb, 88vcores</minResources>
<maxResources>1441792mb, 132vcores</maxResources>
<maxRunningApps>5</maxRunningApps>
<weight>20</weight>
<schedulingPolicy>fair</schedulingPolicy>
<minSharePreemptionTimeout>300</minSharePreemptionTimeout>
<aclSubmitApps>svc_bdli_s1,svc_bdlt_s1,svc_bdlm_s1</aclSubmitApps>
</queue>
<userMaxAppsDefault>50</userMaxAppsDefault>
<fairSharePreemptionTimeout>6000</fairSharePreemptionTimeout>
<defaultQueueSchedulingPolicy>fifo</defaultQueueSchedulingPolicy>
<queuePlacementPolicy>
<rule name=”specified” create=”false” />
<rule name=”user” create=”false” />
<rule name=”group” create=”false” />
<rule name=”default” />
</queuePlacementPolicy>
</allocations>
The job is being run as userx – who as per config file should be part of framework queue
[userx@xxxxxxxx tmp]$ hadoop jar /usr/lib/gphd/hadoop-mapreduce/hadoop-mapreduce-examples.jar wordcount /yarn/man*.txt /yarn/testout1 > /tmp/testout1
15/06/01 12:08:43 INFO client.RMProxy: Connecting to ResourceManager at xxxxxxxx.xyz.com/10.15.232.185:8032
15/06/01 12:08:43 INFO input.FileInputFormat: Total input paths to process : 5
15/06/01 12:08:43 INFO mapreduce.JobSubmitter: number of splits:5
15/06/01 12:08:44 INFO impl.YarnClientImpl: Submitted application application_1433174070996_0002 to ResourceManager at xxxxxxxx.xyz.com/10.15.232.185:8032
15/06/01 12:08:44 INFO mapreduce.Job: The url to track the job: http://xxxxxxxx.xyz.com:8088/proxy/application_1433174070996_0002/
15/06/01 12:08:44 INFO mapreduce.Job: Running job: job_1433174070996_0002
Instead of framework queue, the job is being run under root.admin queue.
[root@xxxxxxxx ~]# yarn application -list
15/06/01 12:09:02 INFO client.RMProxy: Connecting to ResourceManager at xxxxxxxx.xyz.com/10.15.232.185:8032
Total number of applications (application-types: [] and states: [SUBMITTED, ACCEPTED, RUNNING]):1
Application-Id Application-Name Application-Type User Queue State Final-State Progress Tracking-URL
application_1433174070996_0002 word count MAPREDUCE userx root.userx RUNNING UNDEFINED 5% http://xxxxxxxx.xyz.com:39001