You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by se...@apache.org on 2015/09/30 21:29:15 UTC

[03/14] hive git commit: HIVE-11724 : WebHcat get jobs to order jobs on time order with latest at top (Kiran Kumar Kolli, reviewed by Hari Subramaniyan)

HIVE-11724 : WebHcat get jobs to order jobs on time order with latest at top (Kiran Kumar Kolli, reviewed by Hari Subramaniyan)


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

Branch: refs/heads/llap
Commit: a5ffa71908f5f15c5acaef476ad557d98583f2fa
Parents: a4c43f0
Author: Hari Subramaniyan <ha...@apache.org>
Authored: Tue Sep 29 11:56:51 2015 -0700
Committer: Hari Subramaniyan <ha...@apache.org>
Committed: Tue Sep 29 11:56:51 2015 -0700

----------------------------------------------------------------------
 .../hive/hcatalog/templeton/AppConfig.java      | 21 ++++++++++++++++++++
 .../apache/hive/hcatalog/templeton/Server.java  | 12 +++++++++--
 2 files changed, 31 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/a5ffa719/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/AppConfig.java
----------------------------------------------------------------------
diff --git a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/AppConfig.java b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/AppConfig.java
index 062d5a0..403ff14 100644
--- a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/AppConfig.java
+++ b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/AppConfig.java
@@ -89,6 +89,11 @@ public class AppConfig extends Configuration {
     "webhcat-site.xml"
   };
 
+  public enum JobsListOrder {
+    lexicographicalasc,
+    lexicographicaldesc,
+  }
+
   public static final String PORT                = "templeton.port";
   public static final String EXEC_ENCODING_NAME  = "templeton.exec.encoding";
   public static final String EXEC_ENVS_NAME      = "templeton.exec.envs";
@@ -105,6 +110,7 @@ public class AppConfig extends Configuration {
   public static final String HIVE_PATH_NAME      = "templeton.hive.path";
   public static final String MAPPER_MEMORY_MB    = "templeton.mapper.memory.mb";
   public static final String MR_AM_MEMORY_MB     = "templeton.mr.am.memory.mb";
+  public static final String TEMPLETON_JOBSLIST_ORDER = "templeton.jobs.listorder";
 
   /**
    * see webhcat-default.xml
@@ -281,6 +287,21 @@ public class AppConfig extends Configuration {
     }
   }
 
+  public JobsListOrder getListJobsOrder() {
+    String requestedOrder = get(TEMPLETON_JOBSLIST_ORDER);
+    if (requestedOrder != null) {
+      try {
+        return JobsListOrder.valueOf(requestedOrder.toLowerCase());
+      }
+      catch(IllegalArgumentException ex) {
+        LOG.warn("Ignoring setting " + TEMPLETON_JOBSLIST_ORDER + " configured with in-correct value " + requestedOrder);
+      }
+    }
+
+    // Default to lexicographicalasc
+    return JobsListOrder.lexicographicalasc;
+  }
+
   public void startCleanup() {
     JobState.getStorageInstance(this).startCleanup(this);
   }

http://git-wip-us.apache.org/repos/asf/hive/blob/a5ffa719/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/Server.java
----------------------------------------------------------------------
diff --git a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/Server.java b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/Server.java
index 27b8e38..bba16c5 100644
--- a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/Server.java
+++ b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/Server.java
@@ -1002,8 +1002,16 @@ public class Server {
       throw new BadParam("Invalid numrecords format: numrecords should be an integer > 0");
     }
 
-    // Sort the list lexicographically
-    Collections.sort(list);
+    // Sort the list as requested
+    switch (appConf.getListJobsOrder()) {
+    case lexicographicaldesc:
+      Collections.sort(list, Collections.reverseOrder());
+      break;
+    case lexicographicalasc:
+    default:
+      Collections.sort(list);
+      break;
+    }
 
     for (String job : list) {
       // If numRecords = -1, fetch all records.