You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2013/06/04 15:13:24 UTC
svn commit: r1489431 - in /hive/trunk:
cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java
ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
Author: hashutosh
Date: Tue Jun 4 13:13:23 2013
New Revision: 1489431
URL: http://svn.apache.org/r1489431
Log:
HIVE-4546 : Hive CLI leaves behind the per session resource directory on non-interactive invocation (Prasad Mujumdar via Ashutosh Chauhan)
Modified:
hive/trunk/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
Modified: hive/trunk/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java
URL: http://svn.apache.org/viewvc/hive/trunk/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java?rev=1489431&r1=1489430&r2=1489431&view=diff
==============================================================================
--- hive/trunk/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java (original)
+++ hive/trunk/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java Tue Jun 4 13:13:23 2013
@@ -32,12 +32,12 @@ import java.util.Map;
import java.util.Set;
import jline.ArgumentCompletor;
+import jline.ArgumentCompletor.AbstractArgumentDelimiter;
+import jline.ArgumentCompletor.ArgumentDelimiter;
import jline.Completor;
import jline.ConsoleReader;
import jline.History;
import jline.SimpleCompletor;
-import jline.ArgumentCompletor.AbstractArgumentDelimiter;
-import jline.ArgumentCompletor.ArgumentDelimiter;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
@@ -669,6 +669,30 @@ public class CliDriver {
SessionState.start(ss);
+ // execute cli driver work
+ int ret = 0;
+ try {
+ ret = executeDriver(ss, conf, oproc);
+ } catch (Exception e) {
+ ss.close();
+ throw e;
+ }
+
+ ss.close();
+ return ret;
+ }
+
+ /**
+ * Execute the cli work
+ * @param ss CliSessionState of the CLI driver
+ * @param conf HiveConf for the driver sionssion
+ * @param oproc Opetion processor of the CLI invocation
+ * @return status of the CLI comman execution
+ * @throws Exception
+ */
+ private static int executeDriver(CliSessionState ss, HiveConf conf, OptionsProcessor oproc)
+ throws Exception {
+
// connect to Hive Server
if (ss.getHost() != null) {
ss.connect();
@@ -704,12 +728,14 @@ public class CliDriver {
cli.processInitFiles(ss);
if (ss.execString != null) {
- return cli.processLine(ss.execString);
+ int cmdProcessStatus = cli.processLine(ss.execString);
+ return cmdProcessStatus;
}
try {
if (ss.fileName != null) {
- return cli.processFile(ss.fileName);
+ int fileProcessStatus = cli.processFile(ss.fileName);
+ return fileProcessStatus;
}
} catch (FileNotFoundException e) {
System.err.println("Could not open input file for reading. (" + e.getMessage() + ")");
@@ -764,9 +790,6 @@ public class CliDriver {
continue;
}
}
-
- ss.close();
-
return ret;
}
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java?rev=1489431&r1=1489430&r2=1489431&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java Tue Jun 4 13:13:23 2013
@@ -22,16 +22,15 @@ import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
-import java.lang.management.ManagementFactory;
import java.net.URI;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
-import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.UUID;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
@@ -303,9 +302,7 @@ public class SessionState {
* @return the unique string
*/
private static String makeSessionId() {
- String userid = System.getProperty("user.name");
- return userid + "_" + ManagementFactory.getRuntimeMXBean().getName() + "_"
- + DATE_FORMAT.format(new Date());
+ return UUID.randomUUID().toString();
}
/**