[ https://issues.apache.org/jira/browse/YARN-2932?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Payne updated YARN-2932: ----------------------------- Attachment: YARN-2932.v4.txt Thank you [~leftnoteasy] for your review and comments. {quote} Re 2: You're partially correct, queue finally calls setupQueueConfig when reinitialize is invoked. The CapacityScheduler reinitialization is creating a new set of queues, and copy new parameters to your old queues via {code} setupQueueConfigs( clusterResource, newlyParsedLeafQueue.capacity, ... {code} So you need put the parameter you wants to update to setupQueueConfig as well. Without that, queue will not be refreshed. I didn't find any changes to parameter of setupQueueConfig, so I guess so, it's better to add a test to verify it. {quote} I made the changes to the API for {{AbstractCSQueue#setupQueueConfigs}} to take the additional preemptable parameter. When it is called from {{[Leaf|Parent]Queue#setupQueueConfigs}}, it calls {{AbstractCSQueue#isQueuePathHierarchyPreemptable}} to get the preemptability of the queue. I tested the fixes in both version 3 and version 4 of this patch on a one-node cluster and on a 10-node cluster. In both version, I was able to change the {{disable_preemption}} properties, refresh the queues using {{yarn rmadmin -refreshQueues}}, and I was able to see the updates on the Scheduler UI page. However, I think I see that if the new list of queues is different than the old list of queues, it would not pick up the parameters for the new queues without this change. {quote} Re 3: You can take a look at how AbstractCSQueue initialize labels, I think they have similar logic – For node label is trying to get value from configuration, if not set, inherit from parent. With this, you can make getPreemptable interface without defaultVal in CapacitySchedulerConfiguration. {quote} I did change {{CapacitySchedulerConfiguration#getQueuePreemptable}} to not take a default value, but in order to pass back the {{null}} information, it has to return a {{String}} and then the caller has to convert the {{String}} to a Boolean, which I think is a little awkward. {quote} Since YARN-2056 is also planned in 2.7 (I thought it's already included in 2.6), do you think is it better to make configuration option name to <queue-patch>.preemptable for consistency? {quote} Well, that would be ideal, I think, but it isn't that simple on our side. We have already started using the code in YARN-2056 and are using the {{disable_preemption}} property. An argument could be made that {{disable_preemption}} is better because it indicates that it is turning off the {{...monitor.capacity.preemption...}} property. If {{disable_preemption}} were changed to {{preemptable}}, someone may look at that property and think that the queue should have that property without considering the overall, system property {{...monitor.capacity.preemption...}}. How important is it to you that {{disable_preemption}} property be changed to {{preemptable}}? > Add entry for "preemptable" status to scheduler web UI and queue > initialize/refresh logging > ------------------------------------------------------------------------------------------- > > Key: YARN-2932 > URL: https://issues.apache.org/jira/browse/YARN-2932 > Project: Hadoop YARN > Issue Type: Bug > Affects Versions: 3.0.0, 2.7.0 > Reporter: Eric Payne > Assignee: Eric Payne > Attachments: YARN-2932.v1.txt, YARN-2932.v2.txt, YARN-2932.v3.txt, > YARN-2932.v4.txt > > > YARN-2056 enables the ability to turn preemption on or off on a per-queue > level. This JIRA will provide the preemption status for each queue in the > {{HOST:8088/cluster/scheduler}} UI and in the RM log during startup/queue > refresh. -- This message was sent by Atlassian JIRA (v6.3.4#6332)