Spark Web UI
Spark Web UI
分类:1)实时UI管理
2)历史UI管理
实时UI管理
分类:1)Jobs
2)Stages
3)Storage
4)Environment
5)Executors
Jobs
作用:展示的是整个Spark应用任务的Job整体信息
特点:Job默认都是串行提交运行的,如果Job间没有依赖,可以使用多线程并行提交Job,实现Job并发
分类:1)User
Spark任务提交的用户,用以进行权限控制与资源分配
2)Total Uptime
Spark Application总的运行时间,从appmaster开始运行到结束的整体时间
3)Scheduling Mode
Application中Task任务的调度策略,由参数spark.scheduler.mode来设置,可选的参数有FAIR和FIFO,默认是FIFO
4)Completed Jobs
已完成Job的基本信息,如想查看某一个Job的详细情况,可点击对应Job进行查看
5)Active Jobs
正在运行的Job的基本信息
6)Event Timeline
在Application应用运行期间,Job和Exector的增加和删除事件进行图形化的展现。这个就是用来表示调度Job何时启动何时结束,以及Executor何时加入何时移除
Jobs Detail
作用:在Jobs页面点击进入某个Job之后,可以查看某一Job的详细信息
分类:1)Status: 展示Job的当前状态信息
2)Active Stages
正在运行的Stages信息,点击某个Stage可进入查看具体的Stage信息
3)Pending Stages
排队的Stages信息,根据解析的DAG图Stage可并发提交运行,而有依赖的Stage未运行完时则处于等待队列中
4)Completed Stages
已经完成的Stages信息
5)Event Timeline
展示当前Job运行期间Stage的提交与结束、Executor的加入与退出等事件信息
6)DAG Visualization
当前Job所包含的所有Stage信息(Stage中包含的明细的Tranformation操作),以及各Stage间的DAG依赖图
Stages
作用:在Job Detail页点击进入某个Stage后,可以查看某一Stage的详细信息
分类:1)Total time across all Tasks
当前Stage中所有Task花费的时间和
2)Locality Level Summary
不同本地化级别下的任务数,本地化级别是指数据与计算间的关系(PROCESS_LOCAL进程本地化:Task与计算的数据在同一个Executor中
3)Input Size/Records
输入的数据字节数大小/记录条数。
4)Shuffle Write
为下一个依赖的Stage提供输入数据,Shuffle过程中通过网络传输的数据字节数/记录条数。应该尽量减少Shuffle的数据量及其操作次数,这是spark任务优化的一条基本原则
5)DAG Visualization
当前Stage中包含的详细的Tranformation操作流程图
6)Metrics
当前Stage中所有Task的一些指标(每一指标项鼠标移动上去后会有对应解释信息)统计信息
7)Event Timeline
清楚地展示在每个Executor上各个Task的各个阶段的时间统计信息,可以清楚地看到Task任务时间是否有明显倾斜,以及倾斜的时间主要是属于哪个阶段,从而有针对性的进行优化
8)Aggregated Metrics by Executor
将Task运行的指标信息按Executor做聚合后的统计信息,并可查看某个Executor上任务运行的日志信息
9)Tasks
当前Stage中所有任务运行的明细信息,是与Event Timeline中的信息对应的文字展示(可以点击某个Task查看具体的任务日志)
Storage
作用:能看出Application当前使用的缓存情况,可以看到有哪些RDD被缓存了,以及占用的内存资源。如果Job在执行时持久化(persist)/缓存(cache)了一个RDD,那么RDD的信息可以在这个选项卡中查看
Storage Detail
作用:点击某个RDD即可查看该RDD缓存的详细信息,包括缓存在哪个Executor中,使用的block情况,RDD上分区(partitions)的信息以及存储RDD的主机的地址
Enviroment
作用:提供有关Spark应用程序(或SparkContext)中使用的各种属性和环境变量的信息。用户可以通过这个选项卡得到非常有用的各种Spark属性信息,而不用去翻找属性配置文件
Executor
作用:提供了关于内存、CPU核和其他被Executors使用的资源的信息。这些信息在Executor级别和汇总级别都可以获取到。一方面通过它可以看出来每个Executor是否发生了数据倾斜,另一方面可以具体分析目前的应用是否产生了大量的Shuffle,是否可以通过数据的本地性或者减小数据的传输来减少Shuffle的数据量
分类:1)Summary
该Application运行过程中使用Executor的统计信息
2)Executors
每个Executor的详细信息(包含Driver),可以点击查看某个Executor中任务运行的详细日志
SQL
作用:SQL选项卡(只有执行了spark SQL查询才会有SQL选项卡)可以查看SQL执行计划的细节,它提供了SQL查询的DAG以及显示Spark如何优化已执行的SQL查询的查询计划
历史UI管理
参数:1)spark.eventLog.enabled
是否需要保存关闭历史信息的开关,默认值是false。如果需要历史信息,就设置为true
2)spark.eventLog.dir
如果spark.eventLog.enabled设置为true,就会在spark.eventLog.dir所指定的目录中按照应用程序创建子目录,然后保存应用程序的运行信息
步骤:1)在HDFS 上创建放历史文件的目录
2)配置spark-env.sh的SPARK_HISTORY_OPTS="-Dspark.eventLog.dir=第一步创建的目录"
3)配置spark-defaults.conf 的spark.eventLog.enabled=true,spark.eventLog.dir=第一步创建的目录,spark.eventLog.compress=true
4)启动spark-history-server sbin/start-history-server.sh 第一步创建的目录