Flink作為當前最活躍的流計算引擎之一,版本更新速度相對較快。及時升級作業到新版本,可以使用新版本的功能和特性。本文將為您介紹如何升級實時計算Flink版作業的引擎版本。
注意事項
實時計算Flink版引擎發布前,會進行豐富的兼容性測試,原則上同一大版本下的小版本間升級是兼容的,大版本間升級不保證兼容。引擎版本詳情和作業快照(Savepoint)在Flink版本之間的兼容性詳情請參見引擎版本號及其含義和Compatibility Table。
切換作業版本時,需注意:
小版本升級時State兼容,可使用版本切換之前的系統檢查點或作業快照。例如,vvr-4.0.15-flink-1.13切換至vvr-4.0.18-flink-1.13。
大版本切換時State不兼容,需無狀態重啟。例如,vvr-4.0.15-flink-1.13切換至vvr-6.0.2-flink-1.15。
SQL或DataStream作業中的Flink相關依賴版本需要與作業選中的Flink版本保持一致。
社區從Flink 1.13.0版本開始,默認的SQL Planner使用了阿里巴巴貢獻給開源社區的BlinkPlanner,和之前的版本存在部分差異,差異詳情請參見 Apache Flink 1.13.0 發布公告。因此請注意從社區Flink 1.13.0之前的版本,遷移至VVR 4.0(基于社區Flink 1.13.0版本)及以上版本的實時計算Flink版時,可能涉及部分語法和API不兼容的問題。
升級流程
步驟一:備份作業并部署新作業
為了確保作業運行的穩定性,建議通過克隆創建一個完全相同的新作業,并在新作業上進行作業引擎版本升級。
SQL
登錄實時計算管理控制臺,單擊目標工作空間操作列下的控制臺。
新作業切換引擎新版本。
新作業使用新版本時,建議您選擇穩定版(STABLE)或推薦版本(RECOMMENDED)。這些版本修復了其他版本的已知缺陷和相關問題,除了可以使用最新的功能,還提供了更強的穩定性保證。
單擊新作業編輯區右側的更多配置,在引擎版本切換作業版本后,單擊右上方的部署。
在
頁面,單擊目標作業名稱,在部署詳情頁簽的基礎配置部分,檢查新部署作業版本是否切換成功。
DataStream
單擊部署。
步驟二:老作業備份作業狀態
在查看狀態生成總覽。
頁面,單擊目標作業,在作業詳情中的狀態集管理頁簽查看作業狀態集,詳情請參見如果您的作業屬于有狀態計算,那么在升級版本時,首要考慮的是狀態能否復用。
升級前請先手動生成一個作業快照,以便升級出現異常時可以快速回滾業務。具體操作請參見手動創建作業快照。
重要原則上同一大版本下的小版本間升級兼容,大版本間升級不保證兼容。如果兼容,則新版本的引擎可以讀取舊版本引擎生成的作業快照,反之并不保證。
從VVR 6.x版本起,系統支持原生格式和標準格式兩種作業快照格式。前者生成速度更快,后者兼容性更好。因此,如果希望將作業的引擎版本升級至同一大版本下的更高小版本,建議在作業快照生成時選擇原生格式;如果希望將作業的引擎版本升級至更高的大版本,建議選擇標準格式。
如果您的作業是無狀態的,可以直接進入下一步。
(可選)步驟三:停止老作業
在作業停止。
面,單擊老作業操作列下的停止。操作詳情請參見如果下游寫入冪等或者業務上能接受重復數據,可以考慮新老作業同時運行。
步驟四:啟動新作業
如果您的作業是有狀態的:在有狀態啟動中選擇從指定狀態恢復,選擇老作業創建的作業快照。
如果您的作業是無狀態的,可以直接選擇無狀態啟動新作業。
作業啟動步驟詳情請參見作業啟動。
步驟五:觀察線上情況并刪除老作業
通常情況下,如果升級后作業可以正常啟動并完成第一個系統檢查點,可以視為升級初步成功。但仍然建議您觀察一下業務數據的正確性,以確保升級結果的完整性。
當作業正常運行且驗證數據正確性后,可以考慮手動刪除升級之前的作業快照及作業,作業快照刪除具體操作請參見手動刪除指定作業快照。
升級失敗回滾處理
如果在升級后發現作業無法啟動或業務數據異常,建議您立即停止作業,將作業版本切換到升級前的版本,并通過升級前保存的作業快照恢復業務。同時,可以通過提交工單反饋相關問題。
如果您無法跟蹤整個升級過程,建議配置作業失敗告警,以便在發生異常時及時通知您,避免業務受損,具體操作請參見配置監控告警。