spark Web UI的各tab頁分別進(jìn)行介紹:
- Jobs
在提交spark任務(wù)運(yùn)行后吊圾,日志中會(huì)輸出tracking URL即任務(wù)的日志鏈接。在瀏覽器中打開tracking URL后鸦难,默認(rèn)進(jìn)入Jobs頁。Jobs展示的是整個(gè)spark應(yīng)用任務(wù)的job整體信息:
User: spark任務(wù)提交的用戶锤岸,用以進(jìn)行權(quán)限控制與資源分配集漾。
Total Uptime: spark application總的運(yùn)行時(shí)間切黔,從appmaster開始運(yùn)行到結(jié)束的整體時(shí)間。
Scheduling Mode: application中task任務(wù)的調(diào)度策略具篇,由參數(shù)spark.scheduler.mode來設(shè)置纬霞,可選的參數(shù)有FAIR和FIFO,默認(rèn)是FIFO驱显。這與yarn的資源調(diào)度策略的層級(jí)不同诗芜,yarn的資源調(diào)度是針對(duì)集群中不同application間的,而spark scheduler mode則是針對(duì)application內(nèi)部task set級(jí)別的資源分配秒紧,不同F(xiàn)AIR策略的參數(shù)配置方式與yarn中FAIR策略的配置方式相同绢陌。
Completed Jobs: 已完成Job的基本信息挨下,如想查看某一個(gè)Job的詳細(xì)情況熔恢,可點(diǎn)擊對(duì)應(yīng)Job進(jìn)行查看。
Active Jobs: 正在運(yùn)行的Job的基本信息臭笆。
Event Timeline: 在application應(yīng)用運(yùn)行期間叙淌,Job和Exector的增加和刪除事件進(jìn)行圖形化的展現(xiàn)。這個(gè)就是用來表示調(diào)度job何時(shí)啟動(dòng)何時(shí)結(jié)束愁铺,以及Excutor何時(shí)加入何時(shí)移除鹰霍。我們可以很方便看到哪些job已經(jīng)運(yùn)行完成,使用了多少Excutor茵乱,哪些正在運(yùn)行茂洒。
Job默認(rèn)都是串行提交運(yùn)行的,如果Job間沒有依賴瓶竭,可以使用多線程并行提交Job督勺,實(shí)現(xiàn)Job并發(fā)。
- Jobs Detail
在Jobs頁面點(diǎn)擊進(jìn)入某個(gè)Job之后斤贰,可以查看某一Job的詳細(xì)信息:
Staus: 展示Job的當(dāng)前狀態(tài)信息智哀。
Active Stages: 正在運(yùn)行的stages信息,點(diǎn)擊某個(gè)stage可進(jìn)入查看具體的stage信息荧恍。
Pending Stages: 排隊(duì)的stages信息瓷叫,根據(jù)解析的DAG圖stage可并發(fā)提交運(yùn)行,而有依賴的stage未運(yùn)行完時(shí)則處于等待隊(duì)列中。
Completed Stages: 已經(jīng)完成的stages信息摹菠。
Event Timeline: 展示當(dāng)前Job運(yùn)行期間stage的提交與結(jié)束盒卸、Executor的加入與退出等事件信息。
DAG Visualization: 當(dāng)前Job所包含的所有stage信息(stage中包含的明細(xì)的tranformation操作)次氨,以及各stage間的DAG依賴圖世落。DAG也是一種調(diào)度模型,在spark的作業(yè)調(diào)度中糟需,有很多作業(yè)存在依賴關(guān)系屉佳,所以沒有依賴關(guān)系的作業(yè)可以并行執(zhí)行,有依賴的作業(yè)不能并行執(zhí)行洲押。
- Stages
在Job Detail頁點(diǎn)擊進(jìn)入某個(gè)stage后武花,可以查看某一stage的詳細(xì)信息:
Total time across all tasks: 當(dāng)前stage中所有task花費(fèi)的時(shí)間和。
Locality Level Summary: 不同本地化級(jí)別下的任務(wù)數(shù)杈帐,本地化級(jí)別是指數(shù)據(jù)與計(jì)算間的關(guān)系(PROCESS_LOCAL進(jìn)程本地化:task與計(jì)算的數(shù)據(jù)在同一個(gè)Executor中体箕。NODE_LOCAL節(jié)點(diǎn)本地化:情況一:task要計(jì)算的數(shù)據(jù)是在同一個(gè)Worker的不同Executor進(jìn)程中;情況二:task要計(jì)算的數(shù)據(jù)是在同一個(gè)Worker的磁盤上挑童,或在 HDFS 上累铅,恰好有 block 在同一個(gè)節(jié)點(diǎn)上。RACK_LOCAL機(jī)架本地化站叼,數(shù)據(jù)在同一機(jī)架的不同節(jié)點(diǎn)上:情況一:task計(jì)算的數(shù)據(jù)在Worker2的Executor中娃兽;情況二:task計(jì)算的數(shù)據(jù)在Worker2的磁盤上。ANY跨機(jī)架尽楔,數(shù)據(jù)在非同一機(jī)架的網(wǎng)絡(luò)上投储,速度最慢)。
Input Size/Records: 輸入的數(shù)據(jù)字節(jié)數(shù)大小/記錄條數(shù)阔馋。
Shuffle Write: 為下一個(gè)依賴的stage提供輸入數(shù)據(jù)玛荞,shuffle過程中通過網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)字節(jié)數(shù)/記錄條數(shù)。應(yīng)該盡量減少shuffle的數(shù)據(jù)量及其操作次數(shù)呕寝,這是spark任務(wù)優(yōu)化的一條基本原則勋眯。
DAG Visualization: 當(dāng)前stage中包含的詳細(xì)的tranformation操作流程圖。
Metrics: 當(dāng)前stage中所有task的一些指標(biāo)(每一指標(biāo)項(xiàng)鼠標(biāo)移動(dòng)上去后會(huì)有對(duì)應(yīng)解釋信息)統(tǒng)計(jì)信息下梢。
Event Timeline: 清楚地展示在每個(gè)Executor上各個(gè)task的各個(gè)階段的時(shí)間統(tǒng)計(jì)信息客蹋,可以清楚地看到task任務(wù)時(shí)間是否有明顯傾斜,以及傾斜的時(shí)間主要是屬于哪個(gè)階段怔球,從而有針對(duì)性的進(jìn)行優(yōu)化嚼酝。
Aggregated Metrics by Executor: 將task運(yùn)行的指標(biāo)信息按excutor做聚合后的統(tǒng)計(jì)信息,并可查看某個(gè)Excutor上任務(wù)運(yùn)行的日志信息竟坛。
Tasks: 當(dāng)前stage中所有任務(wù)運(yùn)行的明細(xì)信息闽巩,是與Event Timeline中的信息對(duì)應(yīng)的文字展示(可以點(diǎn)擊某個(gè)task查看具體的任務(wù)日志)钧舌。
-
Storage
storage頁面能看出application當(dāng)前使用的緩存情況,可以看到有哪些RDD被緩存了涎跨,以及占用的內(nèi)存資源洼冻。如果job在執(zhí)行時(shí)持久化(persist)/緩存(cache)了一個(gè)RDD,那么RDD的信息可以在這個(gè)選項(xiàng)卡中查看隅很。
-
Storage Detail
點(diǎn)擊某個(gè)RDD即可查看該RDD緩存的詳細(xì)信息撞牢,包括緩存在哪個(gè)Executor中,使用的block情況叔营,RDD上分區(qū)(partitions)的信息以及存儲(chǔ)RDD的主機(jī)的地址屋彪。
-
Enviroment
Environment選項(xiàng)卡提供有關(guān)Spark應(yīng)用程序(或SparkContext)中使用的各種屬性和環(huán)境變量的信息。用戶可以通過這個(gè)選項(xiàng)卡得到非常有用的各種Spark屬性信息绒尊,而不用去翻找屬性配置文件畜挥。
-
Executor
Executors選項(xiàng)卡提供了關(guān)于內(nèi)存、CPU核和其他被Executors使用的資源的信息婴谱。這些信息在Executor級(jí)別和匯總級(jí)別都可以獲取到蟹但。一方面通過它可以看出來每個(gè)excutor是否發(fā)生了數(shù)據(jù)傾斜,另一方面可以具體分析目前的應(yīng)用是否產(chǎn)生了大量的shuffle谭羔,是否可以通過數(shù)據(jù)的本地性或者減小數(shù)據(jù)的傳輸來減少shuffle的數(shù)據(jù)量华糖。
Summary: 該application運(yùn)行過程中使用Executor的統(tǒng)計(jì)信息。
Executors: 每個(gè)Excutor的詳細(xì)信息(包含driver)瘟裸,可以點(diǎn)擊查看某個(gè)Executor中任務(wù)運(yùn)行的詳細(xì)日志客叉。
-
SQL
SQL選項(xiàng)卡(只有執(zhí)行了spark SQL查詢才會(huì)有SQL選項(xiàng)卡)可以查看SQL執(zhí)行計(jì)劃的細(xì)節(jié),它提供了SQL查詢的DAG以及顯示Spark如何優(yōu)化已執(zhí)行的SQL查詢的查詢計(jì)劃景描。
參考文章:
https://www.csdn.net/article/2015-07-08/2825162
https://blog.csdn.net/minge_se/article/details/79146737