Flink2.0 配置 historyserver 主要是去修改config.yaml配置文件 主要修改的點有兩個 網上很多文檔都是寫的只配置一個 都是坑啊
historyserver :歷史服務器
運行 Flink job 的集群一旦停止(例如yarn模式,程序一旦停止,集群也就關閉了),只能去 yarn 或本地磁盤上查看日志,不再可以查看作業掛掉之前的運行的 Web UI,很難清楚知道作業在掛的那一刻到底發生了什么。如果我們還沒有 Metrics 監控的話,那么完全就只能通過日志去分析和定位問題了,所以如果能還原之前的 Web UI,我們可以通過 UI 發現和定位一些問題。
Flink提供了歷史服務器,用來在相應的 Flink 集群關閉后查詢已完成作業的統計信息。我們都知道只有當作業處于運行中的狀態,才能夠查看到相關的WebUI統計信息。通過 History Server 我們才能查詢這些已完成作業的統計信息,無論是正常退出還是異常退出。
1:
jobmanager:# interface, such as 0.0.0.0.bind-host: 0.0.0.0rpc:# JobManager runs.address: cdh1# The RPC port where the JobManager is reachable.port: 6123memory:process:# The total process memory size for the JobManager.# Note this accounts for all memory usage within the JobManager process, including JVM metaspace and other overhead.size: 1600mexecution:failover-strategy: regionarchive:fs:dir: hdfs://cdh1:8020/flink-2.0/completed-jobs // 這個必須配置
2:
historyserver:web:# The address under which the web-based HistoryServer listens.address: 0.0.0.0# The port under which the web-based HistoryServer listens.port: 8082archive:fs:# Comma separated list of directories to monitor for completed jobs.dir: hdfs://cdh1:8020/flink-2.0/completed-jobs# Interval in milliseconds for refreshing the monitored directories.fs.refresh-interval: 10000
總結:
1:jobmanager.archive.fs.dir: hdfs://cdh1:8020/flink-2.0/completed-jobs2:historyserver.web.address: cdh1
2:historyserver.web.port: 8082
2:historyserver.archive.fs.dir: hdfs://cdh1:8020/flink-2.0/completed-jobs
2:historyserver.archive.fs.refresh-interval: 1000
./historyserver.sh start
1. jobmanager.archive.fs.dir: hdfs://cdh1:8020/flink-2.0/completed-jobs
含義: 這個參數指定了JobManager用于存儲作業完成后的歸檔日志的HDFS目錄。當Flink作業完成后,其日志和狀態信息會被歸檔到這個指定的HDFS路徑下,以便后續的分析和審計。
用途:
- 日志歸檔:確保作業執行后的日志和狀態信息不會立即被刪除,而是被安全地存儲在HDFS上。
- 審計和調試:在需要時,可以從HDFS上檢索這些歸檔的日志,用于審計作業的執行情況或調試問題。
2. historyserver.web.address: cdh1
含義: 這個參數指定了Flink HistoryServer綁定的主機名或IP地址。HistoryServer是一個Web服務,用于展示Flink作業的歷史記錄,包括作業的圖、狀態、持續時間等信息。
用途:
- 訪問HistoryServer:用戶可以通過瀏覽器訪問這個地址(通常是http://:),來查看Flink作業的歷史記錄。
- 作業監控:方便用戶監控和分析作業的執行情況,包括作業的成功、失敗、重啟等信息。
3. historyserver.web.port: 8082
含義: 這個參數指定了Flink HistoryServer監聽的端口號。用戶需要通過這個端口來訪問HistoryServer提供的Web服務。
用途:
- Web服務端口:確保HistoryServer能夠在一個特定的端口上監聽HTTP請求,從而提供Web界面供用戶訪問。
- 配置防火墻和安全組:在配置網絡防火墻或安全組時,需要確保這個端口是開放的,以便外部用戶能夠訪問HistoryServer。
4. historyserver.archive.fs.dir: hdfs://cdh1:8020/flink-2.0/completed-jobs
含義: 這個參數與jobmanager.archive.fs.dir類似,但它專門用于HistoryServer。它指定了HistoryServer用于讀取作業歸檔日志的HDFS目錄。HistoryServer會從這個目錄中讀取作業的歷史記錄,并在Web界面上展示。
用途:
- 歷史記錄讀取:確保HistoryServer能夠找到并讀取作業的歷史記錄,以便在Web界面上展示給用戶。
- 數據一致性:確保JobManager和HistoryServer使用相同的HDFS目錄來存儲和讀取作業的歷史記錄,以保持數據的一致性
5. historyserver.archive.fs.refresh-interval: 1000
含義:這個參數指定了HistoryServer刷新HDFS上作業歸檔日志的間隔時間(以毫秒為單位)。在這個時間間隔內,HistoryServer會定期檢查HDFS上的歸檔日志目錄,以獲取最新的作業歷史記錄。
用途:
- 實時性:確保HistoryServer能夠及時地獲取到最新的作業歷史記錄,并在Web界面上展示給用戶。
- 性能調優:通過調整這個參數,可以在實時性和系統性能之間找到一個平衡點。如果設置得太短,可能會增加HDFS的訪問壓力;如果設置得太長,則可能導致用戶無法及時看到最新的作業歷史記錄。
具體日志可以去這兩個文件查看 flink/log下
flink-root-historyserver-0-cdh1.logflink-root-historyserver-0-cdh1.out