Web Interfaces
每个SparkContext启动一个web UI,默认端口是404 , 它显关于应用的有用的信息。包括:
高度器stage和task和列表
RDD大小和内存占用的概况
环境信息
正运行的executors信息
你可参通过在web浏览器中打http://
注意此信息默认只在应用运行时有效。如果想在应用运行完成后查看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://
历史服务器可以做如下配置:
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)等。