Our Community is getting an upgrade! To get everything ready for the relaunch, we’ll be placing the site in read-only mode starting September 21st.
We really appreciate your understanding while we get things set up behind the scenes. Catch up on all the exciting details about the move here.
Need help or have questions? Drop us a line at [email protected]

Support Questions

Find answers, ask questions, and share your expertise
Announcements
Share your experience with Cloudera on G2 and get a $25 Amazon Gift card.
Hi, I'm CLEO! Something exciting is coming to the Community. Stay Tuned!

Resource quotas within a single YARN queue

avatar
Expert Contributor

We have defined several YARN queues. Say that you have queue Q1, where users A and B run Spark processes.

If A submits a job that demands all of the queue resources, they are allocated by YARN. Subsequently, when B submits his job, he is affected by resource scarcity.

We need to prevent this situation, by assigning resources more evenly between A and B (and all other incoming users), within Q1. We have already set Scheduler to Fair. Can this eager resource allocation behaviour be prevented?

1 ACCEPTED SOLUTION

avatar
New Member

@Fernando Lopez Bello Based on the above configuration file for queue Zeppelin although user A submits a job first utilizes all the resources as the Queue's minimum-user-limit-percent is set to 20 the queue resources will be shared among subsequent users below is the link which explains with an example.

https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.6.5/bk_yarn-resource-management/content/setting...

But if you don't want all the resources to shared by user A even if there no other users then you can use user-limit-factor below is the link to a nice article about it. I can see user limit factor is 3 for Zeppelin Queue which means each user can utilize 3 times of queue capacity if resources are available & elasticity permits.

https://community.hortonworks.com/content/supportkb/49640/what-does-the-user-limit-factor-do-when-us...

In a nutshell minimum-user-limit-percent is a soft limit & user-limit-factor is a hard limit.

View solution in original post

3 REPLIES 3

avatar
Master Mentor

@Fernando Lopez Bello

Can you share your CapacityScheduler config

avatar
Expert Contributor

yarn.scheduler.capacity.maximum-am-resource-percent=0.2
yarn.scheduler.capacity.maximum-applications=10000
yarn.scheduler.capacity.node-locality-delay=40
yarn.scheduler.capacity.root.accessible-node-labels=*
yarn.scheduler.capacity.root.acl_administer_queue=*
yarn.scheduler.capacity.root.capacity=100
yarn.scheduler.capacity.root.default.acl_submit_applications=*
yarn.scheduler.capacity.root.default.capacity=10
yarn.scheduler.capacity.root.default.maximum-capacity=30
yarn.scheduler.capacity.root.default.state=RUNNING
yarn.scheduler.capacity.root.default.user-limit-factor=2
yarn.scheduler.capacity.root.queues=Hive,Zeppelin,default
yarn.scheduler.capacity.queue-mappings=u:zeppelin:Zeppelin,u:hdfs:Hive,g:dl-analytics-group:Zeppelin
yarn.scheduler.capacity.queue-mappings-override.enable=false
yarn.scheduler.capacity.root.Hive.acl_administer_queue=*
yarn.scheduler.capacity.root.Hive.acl_submit_applications=*
yarn.scheduler.capacity.root.Hive.capacity=50
yarn.scheduler.capacity.root.Hive.maximum-capacity=90
yarn.scheduler.capacity.root.Hive.minimum-user-limit-percent=25
yarn.scheduler.capacity.root.Hive.ordering-policy=fair
yarn.scheduler.capacity.root.Hive.ordering-policy.fair.enable-size-based-weight=false
yarn.scheduler.capacity.root.Hive.priority=10
yarn.scheduler.capacity.root.Hive.state=RUNNING
yarn.scheduler.capacity.root.Hive.user-limit-factor=2
yarn.scheduler.capacity.root.Zeppelin.acl_administer_queue=*
yarn.scheduler.capacity.root.Zeppelin.acl_submit_applications=*
yarn.scheduler.capacity.root.Zeppelin.capacity=40
yarn.scheduler.capacity.root.Zeppelin.maximum-capacity=80
yarn.scheduler.capacity.root.Zeppelin.minimum-user-limit-percent=20
yarn.scheduler.capacity.root.Zeppelin.ordering-policy=fair
yarn.scheduler.capacity.root.Zeppelin.ordering-policy.fair.enable-size-based-weight=false
yarn.scheduler.capacity.root.Zeppelin.priority=5
yarn.scheduler.capacity.root.Zeppelin.state=RUNNING
yarn.scheduler.capacity.root.Zeppelin.user-limit-factor=3
yarn.scheduler.capacity.root.default.minimum-user-limit-percent=25
yarn.scheduler.capacity.root.default.ordering-policy=fair
yarn.scheduler.capacity.root.default.ordering-policy.fair.enable-size-based-weight=false
yarn.scheduler.capacity.root.default.priority=0
yarn.scheduler.capacity.root.maximum-capacity=100
yarn.scheduler.capacity.root.ordering-policy=priority-utilization
yarn.scheduler.capacity.root.priority=0

avatar
New Member

@Fernando Lopez Bello Based on the above configuration file for queue Zeppelin although user A submits a job first utilizes all the resources as the Queue's minimum-user-limit-percent is set to 20 the queue resources will be shared among subsequent users below is the link which explains with an example.

https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.6.5/bk_yarn-resource-management/content/setting...

But if you don't want all the resources to shared by user A even if there no other users then you can use user-limit-factor below is the link to a nice article about it. I can see user limit factor is 3 for Zeppelin Queue which means each user can utilize 3 times of queue capacity if resources are available & elasticity permits.

https://community.hortonworks.com/content/supportkb/49640/what-does-the-user-limit-factor-do-when-us...

In a nutshell minimum-user-limit-percent is a soft limit & user-limit-factor is a hard limit.