瀏覽代碼

[livy] Stop printing out the repl output

This cuts down on the log noise when there are multiple active
processes. This also makes sure to join this thread.
Erick Tryzelaar 10 年之前
父節點
當前提交
e0f40d6e39

+ 11 - 12
apps/spark/java/livy-spark/src/main/scala/com/cloudera/hue/livy/spark/interactive/InteractiveSessionProcess.scala

@@ -25,6 +25,7 @@ import com.cloudera.hue.livy.sessions.interactive.InteractiveSession
 import com.cloudera.hue.livy.spark.SparkProcess
 
 import scala.annotation.tailrec
+import scala.concurrent.Future
 
 object InteractiveSessionProcess extends Logging {
 
@@ -48,31 +49,29 @@ private class InteractiveSessionProcess(id: Int,
 
       // Loop until we find the ip address to talk to livy-repl.
       @tailrec
-      def readUntilURL(): Boolean = {
+      def readUntilURL(): Unit = {
         if (lines.hasNext) {
           val line = lines.next()
-          println(line)
 
           line match {
-            case regex(url_) =>
-              url = new URL(url_)
-              true
+            case regex(url_) => url = new URL(url_)
             case _ => readUntilURL()
           }
-        } else {
-          false
         }
       }
 
-      if (readUntilURL()) {
-        for (line <- lines) {
-          println(line)
-        }
-      }
+      readUntilURL()
     }
   }
 
   stdoutThread.setName("process session stdout reader")
   stdoutThread.setDaemon(true)
   stdoutThread.start()
+
+  override def stop(): Future[Unit] = {
+    super.stop().andThen { case r =>
+      stdoutThread.join()
+      r
+    }
+  }
 }