spark的sparkUI如何解讀?


spark的sparkUI如何解讀?

以spark2.1.4來做例子

Job - schedule mode

進入之后默認是進入spark job 頁面

這個說明有很詳細的解釋,spark有兩種操作算子:轉換算子(transformation)和執行算子(Action)。當執行到行為算子的時候,就出發了一個Job作業,比如count()和saveAsTextFile()。

sparkJob頁面頭部有幾個,最重要的是Schedule mode,表示的是Job的調度模型。如果多個線程調用多個並行的job,這些job就會被分配調用,這里就有個調度模型,一般是FIFO模型,先進先出模型。但是在spark0.8之后,就支持了一種FAIR模型,FAIR模型是一種公平模型,相當於每個任務輪換使用資源等,這樣能使的小job能很快執行,而不用等大job完成才執行了。

Job - Event Timeline

這個就是用來表示調度job何時啟動,何時結束,並且excutor何時加入。

我們可以很方便看到哪些job已經運行完成,使用了多少excutor,哪些正在運行。

點擊進入每個job,我們就可以看到每個job的detail

Details for Job

在這個頁面我們能看到job的詳情。一個job會被分為一個或者多個stage

這里也有event timeline,告訴我們這個job中每個stage執行時間。

這里多了一個DAG可視化的圖

DAG

DAG圖是有向無環圖的意思。spark中使用有向無環圖來顯示流程。

DAG也是一種調度模型,在spark的作業調度中,有很多作業存在依賴關系,所以有的作業可以並行執行,有的作業不能並行執行。把這些作業的內部轉向關系描繪清楚,就是一個DAG圖。使用DAG圖,就能很清晰看到我們的作業(RDD)哪些先執行,哪些后執行,哪些是並行執行的。

當調用了一個行為算子的時候,前面的所有轉換算子也會一並提交給DAG調度器,DAG調度器把這些算子操作分為不同的stage,這個就是stage的由來。而DAG在畫stage的時候也會產生出一個DAG圖,就是這里的圖了。

點擊每個stage,我們就能看到這個stage執行的任務(Task)了。

Details for Stage

標題

標題代表這是第幾號stage,第幾次嘗試。

Show Additional Metrics

Scheduler Delay

調度延遲時間,包含把任務從調度器輸送給excutor,並且把任務的結果從excutor返回給調度器。如果調度時間比較久,則考慮降低任務的數量,並且降低任務結果大小

Task Deserialization Time

反序列化excutor的任務,也包含讀取廣播任務的時間

Shuffle Read Blocked Time

任務shuffle時間,從遠端機器讀取shuffle數據的時間

Shuffle Remote Reads

從遠端機器讀取shuffle數據的時間

Getting Result Time

從worker中獲取結果的時間

// 這里應該還有一些其它的各種指標,等以后看代碼的時候再補充。

在用圖形表示完之后還有一個summary的時間統計,告訴你每個階段的時間,所有任務的分布圖。

Aggregated Metrics by Executor

這個矩陣告訴我們每個excutor的執行情況。

Tasks

告知每個任務的執行情況。

Environment

顯示所有的環境變量

Excutors

顯示每個excutor的統計情況

參考文章

http://www.csdn.net/article/2015-07-08/2825162
https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-webui-StagePage.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM