在大數據處理中,Spark是一個強大的分布式計算框架。但當Spark服務重啟后,之前的運行記錄就會消失,給我們排查問題和分析任務執行情況帶來不便。這時,配置Spark歷史服務器就顯得尤為重要,它能幫助我們保存和查看歷史任務記錄。下面就來詳細介紹如何配置Spark歷史服務器。
一、準備工作
在開始配置之前,需要確保HDFS服務處于開啟狀態,因為我們會把歷史任務的記錄保存在HDFS集群文件中。
二、具體配置步驟
?????????1. 停止Spark集群
????????????????進入`/opt/module/spark - standalone/sbin`目錄,運行命令`./stop - all.sh`,停止當前正在運行的Spark集群。這一步是為了在后續修改配置文件時,避免出現沖突。
?????????2. 修改spark - default.conf文件
????????????????找到`/opt/module/spark - standalone/conf/spark - default.conf.template`文件,將其名稱修改為`spark - default.conf` 。
????????????????然后在文件中補充以下兩個設置: ``` spark.eventLog.enabled true spark.eventLog.dir hdfs://hadoop100:8020/directory ```
????????????????這里`spark.eventLog.enabled`設置為`true`,表示啟用事件日志記錄功能;`spark.eventLog.dir`指定了歷史任務相關信息的保存目錄,是HDFS上的`/directory`文件夾 。
????????????????需要注意的是,要確保這個目錄存在,并且HDFS服務正常運行。
?????????3. 啟動HDFS服務并創建目錄
????????????????運行`start - dfs.sh`啟動Hadoop的HDFS服務。
????????????????可以通過命令行(如`hdfs dfs - mkdir - p hdfs://hadoop100:8020/directory` )或者在`hadoop100:9870`的Web頁面操作來創建`directory`目錄。?
???????? 4. 修改spark - env.sh文件
????????????????在`spark - env.sh`文件中添加以下配置: ``` export SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://hadoop100:8020/directory" ``` 這一步是為歷史服務器指定日志存儲目錄,使其能夠正確讀取和展示任務歷史記錄。
? ? ? ???5. 分發配置文件
????????????????使用`xsync /opt/module/spark - standalone/conf/`命令,將修改后的配置文件分發到集群中的其他機器上,保證整個集群配置的一致性。?
???????? 6. 重新啟動Spark集群
????????????????在`/opt/module/spark - standalone/sbin`目錄下,運行`./start - all.sh`命令,重新啟動Spark集群。
?????????7. 啟動歷史服務器
????????????????在相同目錄下,運行`./start - history - server.sh`命令,啟動Spark歷史服務器。啟動后,可以檢查`spark - standalone/logs`目錄下的日志,查看歷史服務器的啟動情況是否正常。
?????????8. 查看效果
????????????????此時,通過瀏覽器訪問`hadoop100:18080`端口,正常情況下應該暫時看不到任務記錄,因為還沒有提交新的任務。
???????? 9. 驗證配置
????????????????重新提交一個新的Spark任務,然后再次回到`hadoop100:18080`端口對應的頁面,這時就應該能夠看到剛剛提交的任務記錄了。?
三、總結
通過以上一系列步驟,我們成功配置了Spark歷史服務器。這樣在后續的工作中,無論是排查任務執行失敗的原因,還是分析任務的運行效率,都可以方便地通過歷史服務器查看相關記錄,大大提高了工作效率,也讓我們對Spark任務的管理更加得心應手。