You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by yu...@apache.org on 2019/04/02 03:05:49 UTC
[hadoop] branch trunk updated: YARN-9214. Add
AbstractYarnScheduler#getValidQueues method to remove duplication.
Contributed by Wanqiang Ji.
This is an automated email from the ASF dual-hosted git repository.
yufei pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/trunk by this push:
new 2f75283 YARN-9214. Add AbstractYarnScheduler#getValidQueues method to remove duplication. Contributed by Wanqiang Ji.
2f75283 is described below
commit 2f752830ba74c90ccce818d687572db9afded25b
Author: Yufei Gu <yu...@apache.org>
AuthorDate: Mon Apr 1 20:05:15 2019 -0700
YARN-9214. Add AbstractYarnScheduler#getValidQueues method to remove duplication. Contributed by Wanqiang Ji.
---
.../scheduler/AbstractYarnScheduler.java | 44 +++++++++++++---------
1 file changed, 27 insertions(+), 17 deletions(-)
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java
index 92dde94..5168b34 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java
@@ -771,16 +771,9 @@ public abstract class AbstractYarnScheduler
LOG.warn(e.toString());
throw new YarnException(e);
}
- // check if source queue is a valid
- List<ApplicationAttemptId> apps = getAppsInQueue(sourceQueue);
- if (apps == null) {
- String errMsg =
- "The specified Queue: " + sourceQueue + " doesn't exist";
- LOG.warn(errMsg);
- throw new YarnException(errMsg);
- }
+
// generate move events for each pending/running app
- for (ApplicationAttemptId appAttemptId : apps) {
+ for (ApplicationAttemptId appAttemptId : getAppsFromQueue(sourceQueue)) {
this.rmContext.getDispatcher().getEventHandler()
.handle(new RMAppManagerEvent(appAttemptId.getApplicationId(),
destQueue, RMAppManagerEventType.APP_MOVE));
@@ -795,15 +788,8 @@ public abstract class AbstractYarnScheduler
throws YarnException {
writeLock.lock();
try {
- // check if queue is a valid
- List<ApplicationAttemptId> apps = getAppsInQueue(queueName);
- if (apps == null) {
- String errMsg = "The specified Queue: " + queueName + " doesn't exist";
- LOG.warn(errMsg);
- throw new YarnException(errMsg);
- }
// generate kill events for each pending/running app
- for (ApplicationAttemptId app : apps) {
+ for (ApplicationAttemptId app : getAppsFromQueue(queueName)) {
this.rmContext.getDispatcher().getEventHandler().handle(
new RMAppEvent(app.getApplicationId(), RMAppEventType.KILL,
"Application killed due to expiry of reservation queue "
@@ -1529,4 +1515,28 @@ public abstract class AbstractYarnScheduler
public void resetSchedulerMetrics() {
// reset scheduler metrics
}
+
+ /**
+ * Gets the apps from a given queue.
+ *
+ * Mechanics:
+ * 1. Get all {@link ApplicationAttemptId}s in the given queue by
+ * {@link #getAppsInQueue(String)} method.
+ * 2. Always need to check validity for the given queue by the returned
+ * values.
+ *
+ * @param queueName queue name
+ * @return a collection of app attempt ids in the given queue, it maybe empty.
+ * @throws YarnException if {@link #getAppsInQueue(String)} return null, will
+ * throw this exception.
+ */
+ private List<ApplicationAttemptId> getAppsFromQueue(String queueName)
+ throws YarnException {
+ List<ApplicationAttemptId> apps = getAppsInQueue(queueName);
+ if (apps == null) {
+ throw new YarnException("The specified queue: " + queueName
+ + " doesn't exist");
+ }
+ return apps;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org