日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Spark入门 - History Server配置使用

發布時間:2024/1/23 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spark入门 - History Server配置使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題描述

在Spark安裝成功后,無論是通過spark-submit工具還是通過Intellij IDEA提交任務,只要在Spark應用程序運行期間,都可以通過WebUI控制臺頁面來查看具體的運行細節,在瀏覽器中通過地址:http://<driver-node>:4040即可查看當前的運行狀態。但是一旦應用程序運行結束,該Web界面也就失效了,無法繼續查看監控集群信息。無法回顧剛剛運行的程序細節,進而定向做出優化,肯定極為不便。

這時候就需要為集群配置Spark History Server了。

注:<driver-node>可以是主機名,如master,也可以是主機名對應的IP。

Spark History Server

Spark History Server可以很好地解決上面的問題。

通過配置,我們可以在Spark應用程序運行完成后,將應用程序的運行信息寫入知道目錄,而Spark History Server可以將這些信息裝在并以Web形式供用戶瀏覽。

要使用Spark History Server,對于提交應用程序的客戶端需要配置以下參數。

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://master:9000/history 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。

否壓縮記錄Spark事件,前提spark.eventLog.enabled為true,默認使用的是snappy。

2、在HDFS中建立存放目錄。

上文已經設置好了存放History的目錄HDFS文件目錄,現在我們在HDFS中建立相應的目錄專門存放文件。

root@master:~# hadoop dfs -mkdir /history

之后的歷史記錄都會被存放到這里。

3、配置spark-env.sh文件。

在之前的配置項后面

export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://master:9000/history"

屬性說明

(1) spark.history.ui.port

WebUI的端口號。默認為18080,也可以自行設置。

(2) spark.history.retainedApplications

設置緩存Cache中保存的應用程序歷史記錄的個數,默認50,如果超過這個值,舊的將被刪除。

注:緩存文件數不表示實際顯示的文件總數。只是表示不在緩存中的文件可能需要從硬盤讀取,速度稍有差別。

(3) spark.history.fs.logDirectory

存放歷史記錄文件的目錄。可以是Hadoop APIs支持的任意文件系統。

更多配置參考文章末尾的鏈接。

啟動

依次啟動Hadoop的start-dfs.sh和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

如果提示文件目錄無效,可以直接使用下面的命令指定目錄:

root@master:/usr/local/spark/spark-1.6.2-bin-hadoop2.6/sbin# ./start-history-server.sh hdfs://master:9000/history

啟動后的效果如下(此時尚未運行程序,沒有記錄顯示出來):

之后在每次應用程序運行結束后,就可以在這里觀察剛剛程序的細節了。

小結

應用程序運行時的4040和歷史記錄的18080WebUI配合使用,可以讓我們在運行Spark應用的時候隨時監測程序運行狀態,并作相應的優化和調節,效果顯著。

小問題

不過其中也有一部分小細節尚未解決:如某次程序允許的時候用戶選擇自行中斷,但歷史記錄中仍然存在該記錄,而且最主要的是目前無法刪除單項紀錄。這就顯得很繁瑣了,如果需要對多項歷史記錄進行對比分析,就不得不先在很多的記錄中篩選出哪些是有用記錄,哪些是無用記錄,費時費力。

雖然官方提供了如spark.history.fs.cleaner.interval和spark.history.fs.cleaner.maxAge配置項,但依然不能很好地解決這一問題。

期待后續有更好的解決方案出現。

總結

以上是生活随笔為你收集整理的Spark入门 - History Server配置使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。