You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by cw...@apache.org on 2011/02/17 01:01:42 UTC

svn commit: r1071453 - in /hive/branches/branch-0.7/ql/src: java/org/apache/hadoop/hive/ql/exec/ java/org/apache/hadoop/hive/ql/session/ test/org/apache/hadoop/hive/ql/ test/org/apache/hadoop/hive/ql/exec/

Author: cws
Date: Thu Feb 17 00:01:42 2011
New Revision: 1071453

URL: http://svn.apache.org/viewvc?rev=1071453&view=rev
Log:
HIVE-1211 Tapping logs from child processes (Jonathan Natkins via cws)

Modified:
    hive/branches/branch-0.7/ql/src/java/org/apache/hadoop/hive/ql/exec/MapRedTask.java
    hive/branches/branch-0.7/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
    hive/branches/branch-0.7/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java
    hive/branches/branch-0.7/ql/src/test/org/apache/hadoop/hive/ql/exec/TestExecDriver.java

Modified: hive/branches/branch-0.7/ql/src/java/org/apache/hadoop/hive/ql/exec/MapRedTask.java
URL: http://svn.apache.org/viewvc/hive/branches/branch-0.7/ql/src/java/org/apache/hadoop/hive/ql/exec/MapRedTask.java?rev=1071453&r1=1071452&r2=1071453&view=diff
==============================================================================
--- hive/branches/branch-0.7/ql/src/java/org/apache/hadoop/hive/ql/exec/MapRedTask.java (original)
+++ hive/branches/branch-0.7/ql/src/java/org/apache/hadoop/hive/ql/exec/MapRedTask.java Thu Feb 17 00:01:42 2011
@@ -245,10 +245,12 @@ public class MapRedTask extends ExecDriv
       // Run ExecDriver in another JVM
       executor = Runtime.getRuntime().exec(cmdLine, env, new File(workDir));
 
-      StreamPrinter outPrinter = new StreamPrinter(executor.getInputStream(),
-          null, System.out);
-      StreamPrinter errPrinter = new StreamPrinter(executor.getErrorStream(),
-          null, System.err);
+      StreamPrinter outPrinter = new StreamPrinter(
+          executor.getInputStream(), null,
+          SessionState.getConsole().getChildOutStream());
+      StreamPrinter errPrinter = new StreamPrinter(
+          executor.getErrorStream(), null,
+          SessionState.getConsole().getChildErrStream());
 
       outPrinter.start();
       errPrinter.start();

Modified: hive/branches/branch-0.7/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
URL: http://svn.apache.org/viewvc/hive/branches/branch-0.7/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java?rev=1071453&r1=1071452&r2=1071453&view=diff
==============================================================================
--- hive/branches/branch-0.7/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java (original)
+++ hive/branches/branch-0.7/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java Thu Feb 17 00:01:42 2011
@@ -80,9 +80,17 @@ public class SessionState {
   /**
    * Streams to read/write from.
    */
-  public PrintStream out;
   public InputStream in;
+  public PrintStream out;
   public PrintStream err;
+  /**
+   * Standard output from any child process(es).
+   */
+  public PrintStream childOut;
+  /**
+   * Error output from any child process(es).
+   */
+  public PrintStream childErr;
 
   /**
    * type of the command.
@@ -299,6 +307,16 @@ public class SessionState {
       return ((ss != null) && (ss.err != null)) ? ss.err : System.err;
     }
 
+    public PrintStream getChildOutStream() {
+      SessionState ss = SessionState.get();
+      return ((ss != null) && (ss.childOut != null)) ? ss.childOut : System.out;
+    }
+
+    public PrintStream getChildErrStream() {
+      SessionState ss = SessionState.get();
+      return ((ss != null) && (ss.childErr != null)) ? ss.childErr : System.err;
+    }
+
     public boolean getIsSilent() {
       SessionState ss = SessionState.get();
       // use the session or the one supplied in constructor

Modified: hive/branches/branch-0.7/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java
URL: http://svn.apache.org/viewvc/hive/branches/branch-0.7/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java?rev=1071453&r1=1071452&r2=1071453&view=diff
==============================================================================
--- hive/branches/branch-0.7/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java (original)
+++ hive/branches/branch-0.7/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java Thu Feb 17 00:01:42 2011
@@ -662,10 +662,10 @@ public class QTestUtil {
 
     Process executor = Runtime.getRuntime().exec(cmdLine);
 
-    StreamPrinter outPrinter = new StreamPrinter(executor.getInputStream(),
-        null, System.out);
-    StreamPrinter errPrinter = new StreamPrinter(executor.getErrorStream(),
-        null, System.err);
+    StreamPrinter outPrinter = new StreamPrinter(
+        executor.getInputStream(), null, SessionState.getConsole().getChildOutStream());
+    StreamPrinter errPrinter = new StreamPrinter(
+        executor.getErrorStream(), null, SessionState.getConsole().getChildErrStream());
 
     outPrinter.start();
     errPrinter.start();
@@ -701,10 +701,10 @@ public class QTestUtil {
 
       Process executor = Runtime.getRuntime().exec(cmdLine);
 
-      StreamPrinter outPrinter = new StreamPrinter(executor.getInputStream(),
-          null, System.out);
-      StreamPrinter errPrinter = new StreamPrinter(executor.getErrorStream(),
-          null, System.err);
+      StreamPrinter outPrinter = new StreamPrinter(
+          executor.getInputStream(), null, SessionState.getConsole().getChildOutStream());
+      StreamPrinter errPrinter = new StreamPrinter(
+          executor.getErrorStream(), null, SessionState.getConsole().getChildErrStream());
 
       outPrinter.start();
       errPrinter.start();
@@ -756,10 +756,10 @@ public class QTestUtil {
 
       Process executor = Runtime.getRuntime().exec(cmdArray);
 
-      StreamPrinter outPrinter = new StreamPrinter(executor.getInputStream(),
-          null, System.out);
-      StreamPrinter errPrinter = new StreamPrinter(executor.getErrorStream(),
-          null, System.err);
+      StreamPrinter outPrinter = new StreamPrinter(
+          executor.getInputStream(), null, SessionState.getConsole().getChildOutStream());
+      StreamPrinter errPrinter = new StreamPrinter(
+          executor.getErrorStream(), null, SessionState.getConsole().getChildErrStream());
 
       outPrinter.start();
       errPrinter.start();
@@ -822,10 +822,10 @@ public class QTestUtil {
 
       Process executor = Runtime.getRuntime().exec(cmdArray1);
 
-      StreamPrinter outPrinter = new StreamPrinter(executor.getInputStream(),
-          null, System.out);
-      StreamPrinter errPrinter = new StreamPrinter(executor.getErrorStream(),
-          null, System.err);
+      StreamPrinter outPrinter = new StreamPrinter(
+          executor.getInputStream(), null, SessionState.getConsole().getChildOutStream());
+      StreamPrinter errPrinter = new StreamPrinter(
+          executor.getErrorStream(), null, SessionState.getConsole().getChildErrStream());
 
       outPrinter.start();
       errPrinter.start();
@@ -846,10 +846,10 @@ public class QTestUtil {
 
     Process executor = Runtime.getRuntime().exec(cmdArray);
 
-    StreamPrinter outPrinter = new StreamPrinter(executor.getInputStream(),
-        null, System.out);
-    StreamPrinter errPrinter = new StreamPrinter(executor.getErrorStream(),
-        null, System.err);
+    StreamPrinter outPrinter = new StreamPrinter(
+        executor.getInputStream(), null, SessionState.getConsole().getChildOutStream());
+    StreamPrinter errPrinter = new StreamPrinter(
+        executor.getErrorStream(), null, SessionState.getConsole().getChildErrStream());
 
     outPrinter.start();
     errPrinter.start();
@@ -933,10 +933,10 @@ public class QTestUtil {
 
     Process executor = Runtime.getRuntime().exec(cmdArray);
 
-    StreamPrinter outPrinter = new StreamPrinter(executor.getInputStream(),
-        null, System.out);
-    StreamPrinter errPrinter = new StreamPrinter(executor.getErrorStream(),
-        null, System.err);
+    StreamPrinter outPrinter = new StreamPrinter(
+        executor.getInputStream(), null, SessionState.getConsole().getChildOutStream());
+    StreamPrinter errPrinter = new StreamPrinter(
+        executor.getErrorStream(), null, SessionState.getConsole().getChildErrStream());
 
     outPrinter.start();
     errPrinter.start();

Modified: hive/branches/branch-0.7/ql/src/test/org/apache/hadoop/hive/ql/exec/TestExecDriver.java
URL: http://svn.apache.org/viewvc/hive/branches/branch-0.7/ql/src/test/org/apache/hadoop/hive/ql/exec/TestExecDriver.java?rev=1071453&r1=1071452&r2=1071453&view=diff
==============================================================================
--- hive/branches/branch-0.7/ql/src/test/org/apache/hadoop/hive/ql/exec/TestExecDriver.java (original)
+++ hive/branches/branch-0.7/ql/src/test/org/apache/hadoop/hive/ql/exec/TestExecDriver.java Thu Feb 17 00:01:42 2011
@@ -48,6 +48,7 @@ import org.apache.hadoop.hive.ql.plan.Pl
 import org.apache.hadoop.hive.ql.plan.ReduceSinkDesc;
 import org.apache.hadoop.hive.ql.plan.ScriptDesc;
 import org.apache.hadoop.hive.ql.plan.SelectDesc;
+import org.apache.hadoop.hive.ql.session.SessionState;
 import org.apache.hadoop.hive.serde.Constants;
 import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 import org.apache.hadoop.mapred.TextInputFormat;