監控Spark Application的運行
官方文檔: http://spark.apache.org/docs/latest/monitoring.html
1.1 監控方式
Driver Programme WEB UI (Port: 4040)
* 每一個driver program (更具體的說應該是SparkContext) 都會啟動1個web UI, http://<driver-node>:4040
* 通過web ui能夠看到這個特定的Spark Application的如下內容,如果1台機器上運行了多個SparkContext,那么端口將從4040持續增長(4040/4041/4042...)
- stages,tasks
- summary of RDD size and memeory usage
- 環境信息
- running executor的信息
【注意】默認情況下Driver Programme WEB UI只能在Application運行期間提供服務
Spark UI (Port:8080)
集群模式下運行的Spark,Master節點(cluster manager)會啟動一個Spark UI,用於監控Spark Application的各個階段, http://<master>:8080
Standalone模式提交的Application
* Standalone模式的cluster manager(Spark Master節點上運行)會啟動一個Web UI,Spark UI(8080),顯示正在運行及結束的Spark Application
* Spark UI上的Applicaiton detail會跳轉到Driver Program Web UI(4040), 因此Application運行結束后,application detail默認就無法查看
Yarn UI(8088)
yan client,yan clustert提交的Spark Application, 都會在Yarn UI上列出(yarn上運行的application,類型為spark)
區別:
yarn client: 提交Spark Application的終端, 打印詳細信息及最終結果,Yarn UI上觀測該Application的運行狀態
yarn cluster: 提交Spark Application的終端,打印application的提交,運行,結束信息,Yarn UI觀測該Application的運行狀態,最終結果在worker的stdout日志中打印
1.2 提交方式,監控方式總結
提交模式 | 提交腳本 | 監控頁面及結果查看 |
local本地模式提交 | # ./bin/run-example SparkPi 10 --master local[2] | 監控: http://本地ip:4040 (Driver program Web UI) 注意:Application運行期間Driver Program Web UI才可用 結果: 提交Application的終端(打印詳細信息) |
standalone模式提交 | # ./bin/spark-submit \ |
監控: http://master ip:8080 (Master節點上的cluster manager啟動的web ui) 歷史監控:頁面會顯示standalone模式提交的已完成的application 結果:提交Application的終端(打印詳細信息)
|
yarn-client模式提交 | # ./bin/spark-submit \ |
監控: http://ResourceManager:8088 (Yarn RM啟動的web ui) 歷史監控:頁面會顯示已完成的application 結果:提交Application的終端(會打印詳細信息)
|
yarn-cluster模式提交 | # ./bin/spark-submit \ |
監控: http://ResourceManager:8088 (Yarn RM啟動的web ui) 歷史監控:頁面會顯示已完成的application 結果:通過監控頁面,跳轉到worker node, worker node的stdout日志中打印(終端只打印Application的運行狀態,accepted, running,finished)
|