這時候就需要為集群配置spark history server了。
注:可以是主機名,如master,也可以是主機名對應的ip。
spark history server可以很好地解決上面的問題。
通過配置,我們可以在spark應用程式執行完成後,將應用程式的執行資訊寫入知道目錄,而spark history server可以將這些資訊裝在並以web形式供使用者瀏覽。
要使用spark history server,對於提交應用程式的客戶端需要配置以下引數。
下面以standalone模式為例說明配置資訊。更多擴充套件細節可以根據自己的需求在此基礎上新增配置項。
1、首先配置$spark_home$/conf
目錄下的spark-defaults.conf
檔案。
預設spark-defaults.conf
是不存在的,我們可以根據spark提供的template檔案新建之。
root@master:/usr/local/spark/spark-1.6.2-bin-hadoop2.6/conf# mv spark-defaults.conf.template spark-defaults.conf
root@master:/usr/local/spark/spark-1.6.2-bin-hadoop2.6/conf# vim spark-defaults.conf
並修改檔案內容為:
spark.eventlog.enabled true
spark.eventlog.dir hdfs://hadoop01:8020/spark_event_data
spark.eventlog.compress true
屬性說明
(1) spark.eventlog.enabled。
是否記錄spark事件,用於應用程式在完成後檢視webui。
(2) spark.eventlog.dir。
設定spark.eventlog.enabled為true後,該屬性為記錄spark時間的根目錄。在此根目錄中,spark為每個應用程式建立分目錄,並將應用程式的時間記錄到此目錄中。使用者可以將此屬性設定為hdfs目錄,以便history server讀取。
(3) spark.eventlog.compress。
2、在hdfs中建立存放目錄。
root@master:~# hadoop fs -mkdir /spark_event_data
之後的歷史記錄都會被存放到這裡。
3、配置spark-env.sh
檔案。
在之前的配置項後面
屬性說明
(1) spark.history.ui.port
webui的埠號。預設為18080,也可以自行設定。
設定快取cache中儲存的應用程式歷史記錄的個數,預設50,如果超過這個值,舊的將被刪除。
注:快取檔案數不表示實際顯示的檔案總數。只是表示不在快取中的檔案可能需要從硬碟讀取,速度稍有差別。
(3) spark.history.fs.logdirectory
存放歷史記錄檔案的目錄。可以是hadoop apis支援的任意檔案系統。
啟動spark的start-all.sh
後,再執行start-history-server.sh
檔案即可啟動歷史服務。
root@master:/usr/local/spark/spark-1.6.2-bin-hadoop2.6/sbin# ./start-history-server.sh
啟動後的效果如下(此時尚未執行程式,沒有記錄顯示出來):
之後在每次應用程式執行結束後,就可以在這裡觀察剛剛程式的細節了。
應用程式執行時的4040和歷史記錄的18080webui配合使用,可以讓我們在執行spark應用的時候隨時監測程式執行狀態,並作相應的優化和調節,效果顯著。
spark history server配置使用
這時候就需要為集群配置spark history server了。注 可以是主機名,如master,也可以是主機名對應的ip。spark history server可以很好地解決上面的問題。通過配置,我們可以在spark應用程式執行完成後,將應用程式的執行資訊寫入知道目錄,而spark histo...
Spark History server配置使用
啟動historyserver spark history server可以很好地解決上面的問題。通過配置,我們可以在spark應用程式執行完成後,將應用程式的執行資訊寫入指定目錄,而spark history server可以將這些資訊裝在並以web形式供使用者瀏覽。下面以spark on yar...
Spark History Server 沒有生效
spark 提供了 web ui 來對 spark 應用進行監控。只要開啟 http 4040 就可以看到該頁面。如果有多個 sparkcontext 執行在同乙個主機上,將會從埠 4040,4041,4042 依次占用。不過預設情況下,只在有應用執行期間這些資訊才會存在。應用執行完畢,就無法檢視了...