1. 程式人生 > >spark on yarn圖形化任務監控利器:History-server幫你理解spark的任務執行過程

spark on yarn圖形化任務監控利器:History-server幫你理解spark的任務執行過程

在spark on yarn任務進行時,大家都指導用4040埠監控(預設是,設定其他或者多個任務同時會遞增等例外);
辣麼,任務結束了,還要看圖形化介面,那就要開history-server了。CDH安裝spark on yarn的時候,就自動安裝了history的例項。
現在不用CDH自帶的spark(版本太久了),自己安裝spark新版,所以還得具體配置。
搜了一下帖子,2個步驟:
spark 檢視 job history 日誌
http://blog.csdn.net/stark_summer/article/details/46459701

1、spark-defaults.conf 增加如下內容:
#History
spark.eventLog.dir=hdfs://mycluster/user/spark/applicationHistory
spark.eventLog.enabled=true
spark.yarn.historyServer.address=http://snn.hadoop:18018
#####################
2、spark-env.sh 增加如下內容
##History-server
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18018 -Dspark.history.fs.logDirectory=hdfs://mycluster/user/spark/applicationHistory"
###################
3、strt-history-server.sh 啟動即可,檢視埠監聽,網頁瀏覽,沒有問題。

[h
[email protected]
sbin]$ netstat -tnlp |grep 18018
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 :::18018                    :::*                        LISTEN      7791/java

[[email protected] sbin]$

--原來之前用CDH spark的時候配置了HDFS儲存日誌,現在用外面的版本,之前的日誌也能看到。


#########################################################
但是在實踐中發現幾個問題:有時候yarn中“history”按鈕並沒有連結過去。而是要自己過去看,這怎麼回事。
還有埠我改成了18018,但是還是預設的18080呢?

比較一下任務的“Environment”,發現很大。


原來是spark-env.sh和spark-defaults.conf兩個配置,是不同用途的。

1、spark.eventLog.dir 和 spark.history.fs.logDirectory  區別?
設定了 spark.eventLog.dir ,start-history-server.sh 啟動後面不帶地址,還是使用預設地址:報錯(因為本地的目錄沒有建立),設定spark.history.fs.logDirectory 能不帶引數啟動。

2、spark.yarn.historyServer.address 和 spark.history.ui.port 區別?
啟動:spark.yarn.historyServer.address 設定的埠並沒有生效。需要spark.history.ui.port設定才生效。
如果不設定spark.yarn.historyServer.address,雖然直接在history-server中能直接看,但是在完成任務那裡點選“History”,不會連結到history-server。在任務的"Environment"中也沒看到這個屬性。
但是設定了,"Environment"中可以看到這個屬性,那麼大膽的認為,這個屬性在任務執行中會記錄下來,後面才可以連結。

總結:也就是 spark-env.sh 裡面的 SPARK_HISTORY_OPTS 才是設定 history-server 啟動的配置。

辣麼 spark-defaults.conf 這裡面設定神馬用?任務中讓yarn RM知道這些配置,給後面的連結用。