Web Interfaces

每个SparkContext启动一个web UI,默认端口是404 , 它显关于应用的有用的信息。包括:

  高度器stage和task和列表
  RDD大小和内存占用的概况
  环境信息
  正运行的executors信息

你可参通过在web浏览器中打http://:4040来访问这个UI。如果有多个SparkContext运行在同一主机上,它们将绑定以4040开始连续的端口(如4041、4042等)

  注意此信息默认只在应用运行时有效。如果想在应用运行完成后查看web UI,应该在启动应用前将spark.eventLog.enabled设置为true。Spark编码在UI中显示的Spark信息为Spark事件,并记录到持久化存储中。

Viewing After the Fact

Spark的Standalone模式集群管理器也有它自己的web UI。如果一个应用已经记录它生命周期过程中的事件,那么当它完成后通过Standalone master的Web UI会可以自动的展示。

如果Spark运行在Mesos或YARN,它仍然可能再次展现已经完成应用的UI,通过历史服务器(history server)提供已经存在的应用事件日志。你可以通过下面的命令启动history server:

./sbin/start-history-server.sh

When using the file-system provider class (see spark.history.provider below), the base logging directory must be supplied in the spark.history.fs.logDirectory configuration option, and should contain sub-directories that each represents an application’s event logs. This creates a web interface at http://:18080 by default.

历史服务器可以做如下配置:

Environment Variable Meaning
SPARK_DAEMON_MEMORY server分配的内存 (默认: 512m).
SPARK_DAEMON_JAVA_OPTS history server的JVM选项 (默认: 无).
SPARK_PUBLIC_DNS history server公共地址. 如果没有设置,链接到应用历史将使用服务器的内部地址, 成为损坏的链接 (默认: 无).
SPARK_HISTORY_OPTS 为history server配置spark.history.*选项 (默认: 无).
Property Name Default Meaning
spark.history.provider org.apache.spark.
deploy.history.
FsHistoryProvider
应用历史后端实现的类名。 目前只有一个实现, 由Spark提供, 它查看存储在文件系统里面的应用日志
spark.history.fs.updateInterval 10 history服务器显示信息的更新周期,单位秒。每次更新检查日志的变化并把事件日志记录到持久化存储.
spark.history.retainedApplications 50 应用UI显示保留的数量。超过这个数量,最旧的应用日志将被删除
spark.history.ui.port 18080 历史服务器的Web接口绑定的端口
spark.history.kerberos.enabled false 表示历史服务器是否使用Kerberos登录。如果历史服务器访问的是安全的Hadoop集群上的HDFS文件,这会非常有用。如果值为true,它会使用spark.history.kerberos.principal和 spark.history.kerberos.keytab的配置.
spark.history.kerberos.principal (none) 历史服务器在Kerberos中的安全主体(principal)名称
spark.history.kerberos.keytab (none) Kerberos keytab文件的历史记录服务器的位置
spark.history.ui.acls.enable false 授权用户查看应用程序信息的时候是否检查acl。如果启用,无论应用程序的spark.ui.acls.enable怎么设置,都要进行授权检查,只有应用程序所有者和spark.ui.view.acls指定的用户可以查看应用程序信息;如果禁用,不做任何检查。

注意所有这些UI中,可以点击表头进行排序,因此很容易识别慢task、数据倾斜(data skew)等。