YARN-5068. Expose scheduler queue to application master. (Harish Jaiprakash via 
rohithsharmaks)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/b7ac8525
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/b7ac8525
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/b7ac8525

Branch: refs/heads/HDFS-1312
Commit: b7ac85259c7d20c33bef9c9cb40b8aabcab70755
Parents: d464f4d
Author: Rohith Sharma K S <rohithsharm...@apache.org>
Authored: Thu May 12 15:17:49 2016 +0530
Committer: Rohith Sharma K S <rohithsharm...@apache.org>
Committed: Thu May 12 15:17:49 2016 +0530

----------------------------------------------------------------------
 .../apache/hadoop/yarn/api/ApplicationConstants.java  |  7 +++++++
 .../server/resourcemanager/amlauncher/AMLauncher.java | 14 ++++++++++++++
 .../TestApplicationMasterLauncher.java                |  5 +++++
 3 files changed, 26 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/b7ac8525/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/ApplicationConstants.java
----------------------------------------------------------------------
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/ApplicationConstants.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/ApplicationConstants.java
index d75297a..fa475e7 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/ApplicationConstants.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/ApplicationConstants.java
@@ -160,6 +160,13 @@ public interface ApplicationConstants {
     LD_LIBRARY_PATH("LD_LIBRARY_PATH"),
 
     /**
+     * $YARN_RESOURCEMANAGER_APPLICATION_QUEUE
+     * The queue into which the app was submitted/launched.
+     */
+    YARN_RESOURCEMANAGER_APPLICATION_QUEUE(
+        "YARN_RESOURCEMANAGER_APPLICATION_QUEUE"),
+
+    /**
      * $HADOOP_CONF_DIR
      * Final, non-modifiable.
      */

http://git-wip-us.apache.org/repos/asf/hadoop/blob/b7ac8525/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/amlauncher/AMLauncher.java
----------------------------------------------------------------------
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/amlauncher/AMLauncher.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/amlauncher/AMLauncher.java
index b927bb4..a160741 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/amlauncher/AMLauncher.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/amlauncher/AMLauncher.java
@@ -51,6 +51,7 @@ import org.apache.hadoop.yarn.api.records.ContainerId;
 import org.apache.hadoop.yarn.api.records.ContainerLaunchContext;
 import org.apache.hadoop.yarn.api.records.NodeId;
 import org.apache.hadoop.yarn.client.NMProxy;
+import org.apache.hadoop.yarn.conf.YarnConfiguration;
 import org.apache.hadoop.yarn.event.EventHandler;
 import org.apache.hadoop.yarn.exceptions.YarnException;
 import org.apache.hadoop.yarn.ipc.YarnRPC;
@@ -191,12 +192,25 @@ public class AMLauncher implements Runnable {
         + StringUtils.arrayToString(container.getCommands().toArray(
             new String[0])));
 
+    // Populate the current queue name in the environment variable.
+    setupQueueNameEnv(container, applicationMasterContext);
+
     // Finalize the container
     setupTokens(container, containerID);
 
     return container;
   }
 
+  private void setupQueueNameEnv(ContainerLaunchContext container,
+      ApplicationSubmissionContext applicationMasterContext) {
+    String queueName = applicationMasterContext.getQueue();
+    if (queueName == null) {
+      queueName = YarnConfiguration.DEFAULT_QUEUE_NAME;
+    }
+    container.getEnvironment().put(ApplicationConstants.Environment
+            .YARN_RESOURCEMANAGER_APPLICATION_QUEUE.key(), queueName);
+  }
+
   @Private
   @VisibleForTesting
   protected void setupTokens(

http://git-wip-us.apache.org/repos/asf/hadoop/blob/b7ac8525/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterLauncher.java
----------------------------------------------------------------------
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterLauncher.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterLauncher.java
index 8cdb191..13772dd 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterLauncher.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterLauncher.java
@@ -92,6 +92,7 @@ public class TestApplicationMasterLauncher {
     String nmHostAtContainerManager = null;
     long submitTimeAtContainerManager;
     int maxAppAttempts;
+    private String queueName;
 
     @Override
     public StartContainersResponse
@@ -120,6 +121,8 @@ public class TestApplicationMasterLauncher {
       submitTimeAtContainerManager =
           Long.parseLong(env.get(ApplicationConstants.APP_SUBMIT_TIME_ENV));
       maxAppAttempts = YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS;
+      queueName = env.get(ApplicationConstants.Environment
+              .YARN_RESOURCEMANAGER_APPLICATION_QUEUE.key());
       return StartContainersResponse.newInstance(
         new HashMap<String, ByteBuffer>(), new ArrayList<ContainerId>(),
         new HashMap<ContainerId, SerializedException>());
@@ -182,6 +185,8 @@ public class TestApplicationMasterLauncher {
       containerManager.nmHostAtContainerManager);
     Assert.assertEquals(YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS,
         containerManager.maxAppAttempts);
+    Assert.assertEquals(YarnConfiguration.DEFAULT_QUEUE_NAME,
+        containerManager.queueName);
 
     MockAM am = new MockAM(rm.getRMContext(), rm
         .getApplicationMasterService(), appAttemptId);


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-commits-h...@hadoop.apache.org

Reply via email to