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 ji...@apache.org on 2017/02/10 02:35:22 UTC

[40/50] [abbrv] hadoop git commit: YARN-6115. Few additional paths in Slider client still uses get all Applications without tags/states filter. Contributed by Gour Saha

YARN-6115. Few additional paths in Slider client still uses get all Applications without tags/states filter. Contributed by Gour Saha


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

Branch: refs/heads/yarn-native-services
Commit: 37cb3c54c5649e205f0a68f1b8f04e0b1ad0fd4a
Parents: fa73e1d
Author: Billie Rinaldi <bi...@apache.org>
Authored: Wed Jan 25 14:20:58 2017 -0800
Committer: Jian He <ji...@apache.org>
Committed: Thu Feb 9 16:58:05 2017 -0800

----------------------------------------------------------------------
 .../org/apache/slider/client/SliderClient.java  | 43 +++++++++++------
 .../slider/core/registry/YarnAppListClient.java | 51 +++++++++++++++++---
 2 files changed, 73 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/37cb3c54/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/client/SliderClient.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/client/SliderClient.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/client/SliderClient.java
index 1a959d6..032eb6e 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/client/SliderClient.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/client/SliderClient.java
@@ -142,7 +142,6 @@ import org.apache.slider.core.launch.ClasspathConstructor;
 import org.apache.slider.core.launch.CredentialUtils;
 import org.apache.slider.core.launch.JavaCommandLineBuilder;
 import org.apache.slider.core.launch.LaunchedApplication;
-import org.apache.slider.core.launch.RunningApplication;
 import org.apache.slider.core.launch.SerializedApplicationReport;
 import org.apache.slider.core.main.RunService;
 import org.apache.slider.core.persist.AppDefinitionPersister;
@@ -1535,7 +1534,9 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe
 
   public void updateLifetime(String appName, long lifetime)
       throws YarnException, IOException {
-    ApplicationReport report = findInstance(appName);
+    EnumSet<YarnApplicationState> appStates = EnumSet.range(
+        YarnApplicationState.NEW, YarnApplicationState.RUNNING);
+    ApplicationReport report = findInstance(appName, appStates);
     if (report == null) {
       throw new YarnException("Application not found for " + appName);
     }
@@ -2672,15 +2673,17 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe
   }
 
   /**
-   * List Slider instances belonging to a specific user. This will include
-   * failed and killed instances; there may be duplicates
+   * List Slider instances belonging to a specific user with a specific app
+   * name and within a set of app states.
    * @param user user: "" means all users, null means "default"
+   * @param appName name of the application set as a tag
+   * @param appStates a set of states the applications should be in
    * @return a possibly empty list of Slider AMs
    */
-
-  public List<ApplicationReport> listSliderInstances(String user)
-    throws YarnException, IOException {
-    return yarnAppListClient.listInstances(user);
+  public List<ApplicationReport> listSliderInstances(String user,
+      String appName, EnumSet<YarnApplicationState> appStates)
+      throws YarnException, IOException {
+    return yarnAppListClient.listInstances(user, appName, appStates);
   }
 
   /**
@@ -2806,7 +2809,9 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe
     }
 
     // and those the RM knows about
-    List<ApplicationReport> instances = listSliderInstances(null);
+    EnumSet<YarnApplicationState> appStates = EnumSet.range(min, max);
+    List<ApplicationReport> instances = listSliderInstances(null, clustername,
+        appStates);
     sortApplicationsByMostRecent(instances);
     Map<String, ApplicationReport> reportMap =
         buildApplicationReportMap(instances, min, max);
@@ -3053,7 +3058,7 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe
   }
 
   /**
-   * Find an instance of an application belonging to the current user
+   * Find an instance of an application belonging to the current user.
    * @param appname application name
    * @return the app report or null if none is found
    * @throws YarnException YARN issues
@@ -3061,14 +3066,22 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe
    */
   public ApplicationReport findInstance(String appname)
       throws YarnException, IOException {
-    return yarnAppListClient.findInstance(appname);
+    return findInstance(appname, null);
   }
   
-  private RunningApplication findApplication(String appname)
+  /**
+   * Find an instance of an application belonging to the current user and in
+   * specific app states.
+   * @param appname application name
+   * @param appStates app states in which the application should be in
+   * @return the app report or null if none is found
+   * @throws YarnException YARN issues
+   * @throws IOException IO problems
+   */
+  public ApplicationReport findInstance(String appname,
+      EnumSet<YarnApplicationState> appStates)
       throws YarnException, IOException {
-    ApplicationReport applicationReport = findInstance(appname);
-    return applicationReport != null ?
-           new RunningApplication(yarnClient, applicationReport): null; 
+    return yarnAppListClient.findInstance(appname, appStates);
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/hadoop/blob/37cb3c54/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/core/registry/YarnAppListClient.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/core/registry/YarnAppListClient.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/core/registry/YarnAppListClient.java
index 71cc193..d311fee 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/core/registry/YarnAppListClient.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/core/registry/YarnAppListClient.java
@@ -32,6 +32,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
+import java.util.EnumSet;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -77,7 +78,7 @@ public class YarnAppListClient {
 
 
   /**
-   * Find an instance of a application belong to the current user
+   * Find an instance of a application belong to the current user.
    * @param appname application name
    * @return the app report or null if none is found
    * @throws YarnException YARN issues
@@ -86,7 +87,22 @@ public class YarnAppListClient {
   public ApplicationReport findInstance(String appname) throws
                                                         YarnException,
                                                         IOException {
-    List<ApplicationReport> instances = listInstances(null, appname);
+    return findInstance(appname, null);
+  }
+
+  /**
+   * Find an instance of a application belong to the current user in specific
+   * app states.
+   * @param appname application name
+   * @param appStates list of states in which application should be in
+   * @return the app report or null if none is found
+   * @throws YarnException YARN issues
+   * @throws IOException IO problems
+   */
+  public ApplicationReport findInstance(String appname,
+      EnumSet<YarnApplicationState> appStates)
+      throws YarnException, IOException {
+    List<ApplicationReport> instances = listInstances(null, appname, appStates);
     return yarnClient.findClusterInInstanceList(instances, appname);
   }
 
@@ -111,21 +127,44 @@ public class YarnAppListClient {
   }
 
   /**
-   * List all instances belonging to a specific user and a specific appname.
+   * List all instances belonging to a specific user with a specific app name.
+   *
+   * @param user
+   *          user if not the default. null means default, "" means all users,
+   *          otherwise it is the name of a user
+   * @param appName
+   *          application name set as an application tag
+   * @return a possibly empty list of AMs
+   * @throws YarnException
+   * @throws IOException
+   */
+  public List<ApplicationReport> listInstances(String user, String appName)
+      throws YarnException, IOException {
+    return listInstances(user, appName, null);
+  }
+
+  /**
+   * List all instances belonging to a specific user, with a specific app name
+   * and in specific app states.
    *
    * @param user
    *          user if not the default. null means default, "" means all users,
    *          otherwise it is the name of a user
-   * @param appname
+   * @param appName
    *          application name set as an application tag
+   * @param appStates
+   *          a set of application states within which the app should be in
    * @return a possibly empty list of AMs
    * @throws YarnException
    * @throws IOException
    */
-  public List<ApplicationReport> listInstances(String user, String appname)
+  public List<ApplicationReport> listInstances(String user, String appName,
+      EnumSet<YarnApplicationState> appStates)
       throws YarnException, IOException {
+    log.debug("listInstances called with user: {}, appName: {}, appStates: {}",
+        user, appName, appStates);
     String listUser = user == null ? username : user;
-    return yarnClient.listDeployedInstances(listUser, null, appname);
+    return yarnClient.listDeployedInstances(listUser, appStates, appName);
   }
 
   /**


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