diff options
Diffstat (limited to 'core/src/main/scala/spark/storage/BlockManagerUI.scala')
-rw-r--r-- | core/src/main/scala/spark/storage/BlockManagerUI.scala | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/core/src/main/scala/spark/storage/BlockManagerUI.scala b/core/src/main/scala/spark/storage/BlockManagerUI.scala index a3397a0fb4..631455abcd 100644 --- a/core/src/main/scala/spark/storage/BlockManagerUI.scala +++ b/core/src/main/scala/spark/storage/BlockManagerUI.scala @@ -1,10 +1,12 @@ package spark.storage import akka.actor.{ActorRef, ActorSystem} + import akka.util.Timeout import scala.concurrent.duration._ import spray.httpx.TwirlSupport._ import spray.routing.Directives + import spark.{Logging, SparkContext} import spark.util.AkkaUtils import spark.Utils @@ -20,20 +22,21 @@ class BlockManagerUI(val actorSystem: ActorSystem, blockManagerMaster: ActorRef, implicit val implicitActorSystem = actorSystem val STATIC_RESOURCE_DIR = "spark/deploy/static" - implicit val timeout = Timeout(10 seconds) + implicit val timeout = Duration.create(System.getProperty("spark.akka.askTimeout", "10").toLong, "seconds") + val host = Utils.localHostName() + val port = if (System.getProperty("spark.ui.port") != null) { + System.getProperty("spark.ui.port").toInt + } else { + // TODO: Unfortunately, it's not possible to pass port 0 to spray and figure out which + // random port it bound to, so we have to try to find a local one by creating a socket. + Utils.findFreePort() + } /** Start a HTTP server to run the Web interface */ def start() { try { - val port = if (System.getProperty("spark.ui.port") != null) { - System.getProperty("spark.ui.port").toInt - } else { - // TODO: Unfortunately, it's not possible to pass port 0 to spray and figure out which - // random port it bound to, so we have to try to find a local one by creating a socket. - Utils.findFreePort() - } - AkkaUtils.startSprayServer(actorSystem, "0.0.0.0", port, handler) - logInfo("Started BlockManager web UI at http://%s:%d".format(Utils.localHostName(), port)) + AkkaUtils.startSprayServer(actorSystem, "0.0.0.0", port, handler, "BlockManagerHTTPServer") + logInfo("Started BlockManager web UI at http://%s:%d".format(host, port)) } catch { case e: Exception => logError("Failed to create BlockManager WebUI", e) @@ -74,4 +77,6 @@ class BlockManagerUI(val actorSystem: ActorSystem, blockManagerMaster: ActorRef, } } } + + private[spark] def appUIAddress = "http://" + host + ":" + port } |