如何保持Spark Web UI活着?

poi*_*rez 15 apache-spark

Spark提交执行结束后,Spark Web UI将被终止.有没有办法让它活着?

我正在使用Spark 1.2.1.

Har*_*ari 9

如果您在本地模式下测试,即使用IDEA或Eclipse,则一种方法是执行如下操作.

System.in.read();
spark.stop(); // spark --> SparkSession 
Run Code Online (Sandbox Code Playgroud)

这将确保只要您愿意就可以访问UI.只需在IDEA/Eclipse控制台上按Enter键即可终止应用程序


blu*_*e10 6

要添加有关如何使用历史记录服务器的新手友好的分步解决方案,请执行以下操作:

  • 在spark分发文件夹中,尝试通过以下方式启动历史记录服务器:

    ./sbin/start-history-server.sh

    默认情况下,历史记录服务器将尝试监视/tmp/spark-events日志,但不幸的是,如果路径不存在,它将崩溃。因此,如果您遇到错误,则可能必须mkdir /tmp/spark-events先执行。您可以查看历史服务器登录./logs以查看详细信息,以防出现故障。

  • 为了使上下文保留其事件日志,必须启用事件日志记录。可以通过编程方式或通过编辑./conf/spark-defaults.conf(如果尚不存在,请复制模板),然后取消注释/添加以下行来完成此操作:

    spark.eventLog.enabled true

    运行会spark-submit导致出现事件日志文件夹,例如/tmp/spark-events/local-1465133722470

  • 通常从http:// localhost:18080访问历史服务器UI


Jos*_*sen 5

您可以使用Spark的事件记录和历史记录服务器功能来查看已完成应用程序的UI; 有关详细信息,请参阅https://spark.apache.org/docs/latest/monitoring.html.


Jus*_*ony 3

Web UI 本质上与 相关联SparkContext,因此,如果您不调用.stop并使应用程序保持活动状态,那么 UI 应保持活动状态。不过,如果您需要查看日志,那么这些日志仍应保留在服务器上。保持 Web 服务器部分打开一段时间或其他一些视图可能会是一个有趣的功能,但可能是一个功能请求?

来自SparkContext.scala

// Initialize the Spark UI
private[spark] val ui: Option[SparkUI] =
if (conf.getBoolean("spark.ui.enabled", true)) {
  Some(SparkUI.createLiveUI(this, conf, listenerBus, jobProgressListener,
    env.securityManager,appName))
} else {
  // For tests, do not enable the UI
  None
}


/** Shut down the SparkContext. */
  def stop() {
    SparkContext.SPARK_CONTEXT_CONSTRUCTOR_LOCK.synchronized {
      postApplicationEnd()
      ui.foreach(_.stop())
      ...
    }
  }
Run Code Online (Sandbox Code Playgroud)

更新 - 更好的答案

我忘记了 Spark 历史服务器。这是你可能想要研究的事情