From a37ad4f55c38716bdda5921ae83daff6187c04ba Mon Sep 17 00:00:00 2001 From: Andrew Or Date: Wed, 2 Apr 2014 20:41:33 -0700 Subject: [PATCH] Comments, imports and formatting (minor) --- .../org/apache/spark/deploy/master/Master.scala | 2 +- .../apache/spark/deploy/master/ui/MasterWebUI.scala | 1 + .../org/apache/spark/deploy/worker/Worker.scala | 2 +- .../apache/spark/deploy/worker/ui/WorkerWebUI.scala | 1 + core/src/main/scala/org/apache/spark/ui/WebUI.scala | 13 +++++++++---- .../org/apache/spark/ui/env/EnvironmentTab.scala | 2 +- .../org/apache/spark/ui/exec/ExecutorsTab.scala | 2 +- .../scala/org/apache/spark/ui/exec/IndexPage.scala | 10 +++++----- .../scala/org/apache/spark/ui/jobs/IndexPage.scala | 2 +- .../org/apache/spark/ui/jobs/JobProgressTab.scala | 2 +- .../scala/org/apache/spark/ui/jobs/PoolPage.scala | 2 +- .../scala/org/apache/spark/ui/jobs/StagePage.scala | 2 +- .../scala/org/apache/spark/ui/jobs/StageTable.scala | 2 +- .../apache/spark/ui/storage/BlockManagerTab.scala | 2 +- .../org/apache/spark/ui/storage/IndexPage.scala | 2 +- .../scala/org/apache/spark/ui/storage/RDDPage.scala | 2 +- 16 files changed, 28 insertions(+), 21 deletions(-) diff --git a/core/src/main/scala/org/apache/spark/deploy/master/Master.scala b/core/src/main/scala/org/apache/spark/deploy/master/Master.scala index 4c12ab192079f..a58e14bdcdd34 100644 --- a/core/src/main/scala/org/apache/spark/deploy/master/Master.scala +++ b/core/src/main/scala/org/apache/spark/deploy/master/Master.scala @@ -85,7 +85,6 @@ private[spark] class Master( val masterSource = new MasterSource(this) val webUi = new MasterWebUI(this, webUiPort) - webUi.start() val masterPublicAddress = { val envVar = System.getenv("SPARK_PUBLIC_DNS") @@ -116,6 +115,7 @@ private[spark] class Master( logInfo("Starting Spark master at " + masterUrl) // Listen for remote client disconnection events, since they don't go through Akka's watch() context.system.eventStream.subscribe(self, classOf[RemotingLifecycleEvent]) + webUi.start() webUi.bind() masterWebUiUrl = "http://" + masterPublicAddress + ":" + webUi.boundPort context.system.scheduler.schedule(0 millis, WORKER_TIMEOUT millis, self, CheckForWorkerTimeOut) diff --git a/core/src/main/scala/org/apache/spark/deploy/master/ui/MasterWebUI.scala b/core/src/main/scala/org/apache/spark/deploy/master/ui/MasterWebUI.scala index fbcc76b3cc150..c8d51e44a4dff 100644 --- a/core/src/main/scala/org/apache/spark/deploy/master/ui/MasterWebUI.scala +++ b/core/src/main/scala/org/apache/spark/deploy/master/ui/MasterWebUI.scala @@ -35,6 +35,7 @@ class MasterWebUI(val master: Master, requestedPort: Int) val masterActorRef = master.self val timeout = AkkaUtils.askTimeout(master.conf) + /** Initialize all components of the server. Must be called before bind(). */ def start() { attachPage(new ApplicationPage(this)) attachPage(new IndexPage(this)) diff --git a/core/src/main/scala/org/apache/spark/deploy/worker/Worker.scala b/core/src/main/scala/org/apache/spark/deploy/worker/Worker.scala index 97b5a37f1439c..e1921bcc0d025 100755 --- a/core/src/main/scala/org/apache/spark/deploy/worker/Worker.scala +++ b/core/src/main/scala/org/apache/spark/deploy/worker/Worker.scala @@ -122,10 +122,10 @@ private[spark] class Worker( host, port, cores, Utils.megabytesToString(memory))) logInfo("Spark home: " + sparkHome) createWorkDir() + context.system.eventStream.subscribe(self, classOf[RemotingLifecycleEvent]) webUi = new WorkerWebUI(this, workDir, Some(webUiPort)) webUi.start() webUi.bind() - context.system.eventStream.subscribe(self, classOf[RemotingLifecycleEvent]) registerWithMaster() metricsSystem.registerSource(workerSource) diff --git a/core/src/main/scala/org/apache/spark/deploy/worker/ui/WorkerWebUI.scala b/core/src/main/scala/org/apache/spark/deploy/worker/ui/WorkerWebUI.scala index e0a60121cb65a..ae1b7ab014e6e 100644 --- a/core/src/main/scala/org/apache/spark/deploy/worker/ui/WorkerWebUI.scala +++ b/core/src/main/scala/org/apache/spark/deploy/worker/ui/WorkerWebUI.scala @@ -38,6 +38,7 @@ class WorkerWebUI(val worker: Worker, val workDir: File, requestedPort: Option[I worker.conf.get("worker.ui.port", WorkerWebUI.DEFAULT_PORT).toInt) val timeout = AkkaUtils.askTimeout(worker.conf) + /** Initialize all components of the server. Must be called before bind(). */ def start() { val logPage = new LogPage(this) attachPage(logPage) diff --git a/core/src/main/scala/org/apache/spark/ui/WebUI.scala b/core/src/main/scala/org/apache/spark/ui/WebUI.scala index 6f7385086b534..f20aec893c787 100644 --- a/core/src/main/scala/org/apache/spark/ui/WebUI.scala +++ b/core/src/main/scala/org/apache/spark/ui/WebUI.scala @@ -19,15 +19,16 @@ package org.apache.spark.ui import javax.servlet.http.HttpServletRequest +import scala.collection.mutable.ArrayBuffer +import scala.xml.Node + import org.eclipse.jetty.servlet.ServletContextHandler +import org.json4s.JsonAST.{JNothing, JValue} import org.apache.spark.SecurityManager +import org.apache.spark.scheduler.SparkListener import org.apache.spark.ui.JettyUtils._ import org.apache.spark.util.Utils -import scala.collection.mutable.ArrayBuffer -import org.apache.spark.scheduler.SparkListener -import scala.xml.Node -import org.json4s.JsonAST.{JNothing, JValue} /** * The top level component of the UI hierarchy that contains the server. @@ -70,6 +71,9 @@ private[spark] abstract class WebUI(securityManager: SecurityManager, basePath: /** Return a list of handlers attached to this UI. */ def getHandlers = handlers.toSeq + /** Initialize all components of the server. Must be called before bind(). */ + def start() + /** * Bind to the HTTP server behind this web interface. * Overridden implementation should set serverInfo. @@ -101,6 +105,7 @@ private[spark] abstract class UITab(val prefix: String) { pages += page } + /** Initialize listener and attach pages. */ def start() } diff --git a/core/src/main/scala/org/apache/spark/ui/env/EnvironmentTab.scala b/core/src/main/scala/org/apache/spark/ui/env/EnvironmentTab.scala index dd4ea2a2332a2..ad355e59a37aa 100644 --- a/core/src/main/scala/org/apache/spark/ui/env/EnvironmentTab.scala +++ b/core/src/main/scala/org/apache/spark/ui/env/EnvironmentTab.scala @@ -29,7 +29,7 @@ private[ui] class EnvironmentTab(parent: SparkUI) extends UITab("environment") { attachPage(new IndexPage(this)) } - def environmentListener = { + def environmentListener: EnvironmentListener = { assert(listener.isDefined, "EnvironmentTab has not started yet!") listener.get.asInstanceOf[EnvironmentListener] } diff --git a/core/src/main/scala/org/apache/spark/ui/exec/ExecutorsTab.scala b/core/src/main/scala/org/apache/spark/ui/exec/ExecutorsTab.scala index 2b833c58c8e44..3941a1849b182 100644 --- a/core/src/main/scala/org/apache/spark/ui/exec/ExecutorsTab.scala +++ b/core/src/main/scala/org/apache/spark/ui/exec/ExecutorsTab.scala @@ -33,7 +33,7 @@ private[ui] class ExecutorsTab(parent: SparkUI) extends UITab("executors") { attachPage(new IndexPage(this)) } - def executorsListener = { + def executorsListener: ExecutorsListener = { assert(listener.isDefined, "ExecutorsTab has not started yet!") listener.get.asInstanceOf[ExecutorsListener] } diff --git a/core/src/main/scala/org/apache/spark/ui/exec/IndexPage.scala b/core/src/main/scala/org/apache/spark/ui/exec/IndexPage.scala index fbbba2f63878f..9a711d773ae01 100644 --- a/core/src/main/scala/org/apache/spark/ui/exec/IndexPage.scala +++ b/core/src/main/scala/org/apache/spark/ui/exec/IndexPage.scala @@ -50,11 +50,11 @@ private[ui] class IndexPage(parent: ExecutorsTab) extends UIPage("") { -
-
- {execTable} -
-
; +
+
+ {execTable} +
+
; UIUtils.headerSparkPage( content, basePath, appName, "Executors (" + execInfo.size + ")", Executors) diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/IndexPage.scala b/core/src/main/scala/org/apache/spark/ui/jobs/IndexPage.scala index c600e58af004d..5c752793d2342 100644 --- a/core/src/main/scala/org/apache/spark/ui/jobs/IndexPage.scala +++ b/core/src/main/scala/org/apache/spark/ui/jobs/IndexPage.scala @@ -22,8 +22,8 @@ import javax.servlet.http.HttpServletRequest import scala.xml.{Node, NodeSeq} import org.apache.spark.scheduler.Schedulable -import org.apache.spark.ui.Page._ import org.apache.spark.ui.{UIPage, UIUtils} +import org.apache.spark.ui.Page.Stages /** Page showing list of all ongoing and recently finished stages and pools */ private[ui] class IndexPage(parent: JobProgressTab) extends UIPage("") { diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/JobProgressTab.scala b/core/src/main/scala/org/apache/spark/ui/jobs/JobProgressTab.scala index c40b75d684510..611febe10c1aa 100644 --- a/core/src/main/scala/org/apache/spark/ui/jobs/JobProgressTab.scala +++ b/core/src/main/scala/org/apache/spark/ui/jobs/JobProgressTab.scala @@ -36,7 +36,7 @@ private[ui] class JobProgressTab(parent: SparkUI) extends UITab("stages") { attachPage(new PoolPage(this)) } - def jobProgressListener = { + def jobProgressListener: JobProgressListener = { assert(listener.isDefined, "JobProgressTab has not started yet!") listener.get.asInstanceOf[JobProgressListener] } diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/PoolPage.scala b/core/src/main/scala/org/apache/spark/ui/jobs/PoolPage.scala index 53200ecdd4fee..9382251d6e612 100644 --- a/core/src/main/scala/org/apache/spark/ui/jobs/PoolPage.scala +++ b/core/src/main/scala/org/apache/spark/ui/jobs/PoolPage.scala @@ -22,8 +22,8 @@ import javax.servlet.http.HttpServletRequest import scala.xml.Node import org.apache.spark.scheduler.{Schedulable, StageInfo} -import org.apache.spark.ui.Page._ import org.apache.spark.ui.{UIPage, UIUtils} +import org.apache.spark.ui.Page.Stages /** Page showing specific pool details */ private[ui] class PoolPage(parent: JobProgressTab) extends UIPage("pool") { diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/StagePage.scala b/core/src/main/scala/org/apache/spark/ui/jobs/StagePage.scala index bd3d878b1567f..a4f6e5d69c515 100644 --- a/core/src/main/scala/org/apache/spark/ui/jobs/StagePage.scala +++ b/core/src/main/scala/org/apache/spark/ui/jobs/StagePage.scala @@ -22,8 +22,8 @@ import javax.servlet.http.HttpServletRequest import scala.xml.Node -import org.apache.spark.ui.Page._ import org.apache.spark.ui.{UIPage, UIUtils} +import org.apache.spark.ui.Page.Stages import org.apache.spark.util.{Utils, Distribution} /** Page showing statistics and task list for a given stage */ diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/StageTable.scala b/core/src/main/scala/org/apache/spark/ui/jobs/StageTable.scala index e41e6c0ab7da6..d918feafd97d0 100644 --- a/core/src/main/scala/org/apache/spark/ui/jobs/StageTable.scala +++ b/core/src/main/scala/org/apache/spark/ui/jobs/StageTable.scala @@ -23,7 +23,7 @@ import scala.collection.mutable.HashMap import scala.xml.Node import org.apache.spark.scheduler.{StageInfo, TaskInfo} -import org.apache.spark.ui.{WebUI, UIUtils} +import org.apache.spark.ui.UIUtils import org.apache.spark.util.Utils /** Page showing list of all ongoing and recently finished stages */ diff --git a/core/src/main/scala/org/apache/spark/ui/storage/BlockManagerTab.scala b/core/src/main/scala/org/apache/spark/ui/storage/BlockManagerTab.scala index d7fcd823a242f..2b9cf35fcde55 100644 --- a/core/src/main/scala/org/apache/spark/ui/storage/BlockManagerTab.scala +++ b/core/src/main/scala/org/apache/spark/ui/storage/BlockManagerTab.scala @@ -34,7 +34,7 @@ private[ui] class BlockManagerTab(parent: SparkUI) extends UITab("storage") { attachPage(new RddPage(this)) } - def blockManagerListener = { + def blockManagerListener: BlockManagerListener = { assert(listener.isDefined, "BlockManagerTab has not started yet!") listener.get.asInstanceOf[BlockManagerListener] } diff --git a/core/src/main/scala/org/apache/spark/ui/storage/IndexPage.scala b/core/src/main/scala/org/apache/spark/ui/storage/IndexPage.scala index f06fdf7ce4d4c..7bfcf13c69c6b 100644 --- a/core/src/main/scala/org/apache/spark/ui/storage/IndexPage.scala +++ b/core/src/main/scala/org/apache/spark/ui/storage/IndexPage.scala @@ -22,8 +22,8 @@ import javax.servlet.http.HttpServletRequest import scala.xml.Node import org.apache.spark.storage.RDDInfo -import org.apache.spark.ui.Page._ import org.apache.spark.ui.{UIPage, UIUtils} +import org.apache.spark.ui.Page.Storage import org.apache.spark.util.Utils /** Page showing list of RDD's currently stored in the cluster */ diff --git a/core/src/main/scala/org/apache/spark/ui/storage/RDDPage.scala b/core/src/main/scala/org/apache/spark/ui/storage/RDDPage.scala index cb21754550494..35ccfd505a3ef 100644 --- a/core/src/main/scala/org/apache/spark/ui/storage/RDDPage.scala +++ b/core/src/main/scala/org/apache/spark/ui/storage/RDDPage.scala @@ -22,8 +22,8 @@ import javax.servlet.http.HttpServletRequest import scala.xml.Node import org.apache.spark.storage.{BlockId, BlockStatus, StorageStatus, StorageUtils} -import org.apache.spark.ui.Page._ import org.apache.spark.ui.{UIPage, UIUtils} +import org.apache.spark.ui.Page.Storage import org.apache.spark.util.Utils /** Page showing storage details for a given RDD */