天天看點

教你如何輕松配置Spark的曆史日志伺服器JobHistoryServer?

預設情況下,Spark程式運作完畢關閉視窗之後,就無法再檢視運作記錄的Web UI(4040)了,但通過 HistoryServer 可以提供一個服務, 通過讀取日志檔案, 使得我們可以在程式運作結束後, 依然能夠檢視運作過程。本篇部落格,部落客就為大家帶來在Spark上配置JobHistoryServer的詳細過程。

教你如何輕松配置Spark的曆史日志伺服器JobHistoryServer?

1.進入到spark安裝目錄下的conf檔案夾

cd /export/servers/spark/conf

2.修改配置檔案名稱

vim spark-defaults.conf

spark.eventLog.enabled true
spark.eventLog.dir hdfs://node01:8020/sparklog           

複制

注意:HDFS上的目錄需要提前存在

hadoop fs -mkdir -p /sparklog

3.修改spark-env.sh檔案

vim spark-env.sh

export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=4000
-Dspark.history.retainedApplications=3 
-Dspark.history.fs.logDirectory=hdfs://node01:8020/sparklog"           

複制

參數描述:

spark.eventLog.dir:Application在運作過程中所有的資訊均記錄在該屬性指定的路徑下;

spark.history.ui.port=4000 WEBUI通路的端口号為4000

spark.history.fs.logDirectory=hdfs://node01:8020/sparklog 配置了該屬性後,在start-history-server.sh時就無需再顯式的指定路徑,Spark History Server頁面隻展示該指定路徑下的資訊

spark.history.retainedApplications=30指定儲存Application曆史記錄的個數,如果超過這個值,舊的應用程式資訊将被删除,這個是記憶體中的應用數,而不是頁面上顯示的應用數。

4.同步配置檔案

這裡可以用scp指令,也可以用xsync自定義的指令,關于如何使用xsync請參考<帶你書寫linux超實用的腳本——xcall(同步執行指令)與xsync(同步檔案目錄)>

xsync spark-defaults.conf

xsync spark-env.sh

5.重新開機叢集

/export/servers/spark/sbin/stop-all.sh /export/servers/spark/sbin/start-all.sh

6.在master上啟動日志伺服器

/export/servers/spark/sbin/start-history-server.sh

7.運作一個計算PI的執行個體程式

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--executor-memory 1G \
--total-executor-cores 2 \
/export/servers/spark/examples/jars/spark-examples_2.11-2.2.0.jar \
100           

複制

待運作完畢之後,從浏覽器輸入

http://node01:4000/

教你如何輕松配置Spark的曆史日志伺服器JobHistoryServer?
  • 如果遇到Hadoop HDFS的寫入權限問題:

org.apache.hadoop.security.AccessControlException

解決方案:

在hdfs-site.xml中添加如下配置,關閉權限驗證

<property>
        <name>dfs.permissions</name>
        <value>false</value>
</property>           

複制

本次的分享就到這裡,受益的小夥伴或對大資料技術感興趣的朋友記得點贊關注小菌喲~