全部產品
Search
文件中心

Realtime Compute for Apache Flink:動態擴縮容與參數動態更新

更新時間:Nov 15, 2024

動態更新Flink作業參數可以實現更快的參數配置生效,減少作業啟停對業務的停機時間,方便進行TM動態擴縮容和系統檢查點的排查。

背景資訊

傳統的Flink參數更新方式需要重新啟動作業,可能會出現業務中斷、資料回追延遲和資源佔用高峰等問題,導致作業停止時間變長,影響商務持續性。

動態更新參數功能通過REST請求發送至運行中的作業,它允許作業複用現有的JobManager和TaskManager容器,以原地重啟、甚至不重啟的方式來進行更新,從而降低重啟的代價。配合資源預申請、State lazy載入等能力,進一步提升更新後的作業啟動速度,將參數更新帶來的斷流時間從分鐘級降到秒級。以一個典型的Source -> Map -> Sink作業為例,在動態擴縮容操作中,通過動態參數更新可以顯著減少斷流時間。斷流時間對比情況如下圖所示。

image.png

說明

您可以通過動態更新並發度來實現動態擴縮容TM,實際TM個數推算詳情請參見配置作業資源

使用限制

  • 並發度系統檢查點間隔系統檢查點逾時時間以及兩次系統檢查點最短間隔參數支援動態更新。如果您同時修改了無法動態更新的參數,需要重新啟動作業才能使這些參數生效。

  • 僅Realtime Compute引擎VVR 8.0.1及以上版本支援動態更新參數。

  • 專家模式(細粒度)不支援動態更新並發度。

注意事項

  • 動態更新為實驗性功能,在動態更新參數時,業務並不是完全不中斷。相比傳統的參數修改模式,動態更新能夠顯著縮短停機時間,但中斷的具體時間長度受到作業拓撲和狀態大小等因素的影響,通常在5秒至1分鐘之間。

  • 僅作業處於運行狀態時,才能動態更新參數並讓其生效。

  • 在動態更新並發度時,由於節點的並發度在某些情境下有特殊要求(例如:Global運算元的並發度必須為1,不能更改;使用者顯式設定Kafka Source的並發度,以避免其超過其分區數),因此,Realtime ComputeFlink版會跳過已被設定並發度的節點,僅修改未指定並發度的節點。如果您希望節點的並發度可以被動態更新,建議不要通過DataStream#setParallelism方法或Source/Sink的並發度配置參數等方式指定運算元的並發度。

操作步驟

  1. 進入作業營運頁面。

    1. 登入Realtime Compute控制台

    2. 單擊對應工作空間操作列下的控制台

    3. 營運中心 > 作業營運頁面,單擊目標作業名稱。

  2. 部署詳情頁簽,單擊資源配置運行參數配置地區右側的編輯

  3. 修改可以被動態更新的參數取值後,單擊儲存

  4. 單擊頁面右上方的動態更新

    重要

    並發度系統檢查點間隔系統檢查點逾時時間以及兩次系統檢查點最短間隔參數支援動態更新。參數值修改後,才會出現動態更新按鈕,單擊按鈕後生效。如果您同時修改了無法動態更新的參數,需要重新啟動作業才能使這些參數生效。

    image

  5. 在彈出的對話方塊中查看提示資訊後,單擊確定

    單擊確定後,您會看到正在更新的標識。

    image.png

相關文檔

  • 不支援動態更新的參數,您可以在部署詳情頁簽配置後重啟作業,詳情請參見配置作業部署資訊作業啟動

  • 自動調優功能可以協助您更合理地調整作業並發度和資源配置,解決相關效能調優問題,詳情請參見配置自動調優

  • 作業智能診斷服務能夠幫您監控作業健康情況,分析和診斷錯誤記錄檔、異常運行和風險情況,並提供可理解和可操作的診斷建議,詳情請參見作業智能診斷

  • 配置Task快速重啟,可以降低Failover對作業的影響,詳情請參見Task快速重啟配置