動(dòng)態(tài)擴(kuò)縮容與參數(shù)動(dòng)態(tài)更新
動(dòng)態(tài)更新Flink作業(yè)參數(shù)可以實(shí)現(xiàn)更快的參數(shù)配置生效,減少作業(yè)啟停對(duì)業(yè)務(wù)的中斷時(shí)間,方便進(jìn)行TM動(dòng)態(tài)擴(kuò)縮容和系統(tǒng)檢查點(diǎn)的排查。
背景信息
傳統(tǒng)的Flink參數(shù)更新方式需要重新啟動(dòng)作業(yè),可能會(huì)出現(xiàn)業(yè)務(wù)中斷、數(shù)據(jù)回追延遲和資源占用高峰等問題,導(dǎo)致作業(yè)停止時(shí)間變長(zhǎng),影響業(yè)務(wù)連續(xù)性。
動(dòng)態(tài)更新參數(shù)功能通過REST請(qǐng)求發(fā)送至運(yùn)行中的作業(yè),它允許作業(yè)復(fù)用現(xiàn)有的JobManager和TaskManager容器,以原地重啟、甚至不重啟的方式來(lái)進(jìn)行更新,從而降低重啟的代價(jià)。配合資源預(yù)申請(qǐng)、State lazy加載等能力,進(jìn)一步提升更新后的作業(yè)啟動(dòng)速度,將參數(shù)更新帶來(lái)的斷流時(shí)間從分鐘級(jí)降到秒級(jí)。以一個(gè)典型的Source -> Map -> Sink作業(yè)為例,在動(dòng)態(tài)擴(kuò)縮容操作中,通過動(dòng)態(tài)參數(shù)更新可以顯著減少斷流時(shí)間。斷流時(shí)間對(duì)比情況如下圖所示。
您可以通過動(dòng)態(tài)更新并發(fā)度來(lái)實(shí)現(xiàn)動(dòng)態(tài)擴(kuò)縮容TM,實(shí)際TM個(gè)數(shù)推算詳情請(qǐng)參見配置作業(yè)資源。
使用限制
僅并發(fā)度、系統(tǒng)檢查點(diǎn)間隔、系統(tǒng)檢查點(diǎn)超時(shí)時(shí)間以及兩次系統(tǒng)檢查點(diǎn)最短間隔參數(shù)支持動(dòng)態(tài)更新。如果您同時(shí)修改了無(wú)法動(dòng)態(tài)更新的參數(shù),需要重新啟動(dòng)作業(yè)才能使這些參數(shù)生效。
僅實(shí)時(shí)計(jì)算引擎VVR 8.0.1及以上版本支持動(dòng)態(tài)更新參數(shù)。
專家模式(細(xì)粒度)不支持動(dòng)態(tài)更新并發(fā)度。
注意事項(xiàng)
動(dòng)態(tài)更新為實(shí)驗(yàn)性功能,在動(dòng)態(tài)更新參數(shù)時(shí),業(yè)務(wù)并不是完全不中斷。相比傳統(tǒng)的參數(shù)修改模式,動(dòng)態(tài)更新能夠顯著縮短中斷時(shí)間,但中斷的具體時(shí)長(zhǎng)受到作業(yè)拓?fù)浜蜖顟B(tài)大小等因素的影響,通常在5秒至1分鐘之間。
僅作業(yè)處于運(yùn)行狀態(tài)時(shí),才能動(dòng)態(tài)更新參數(shù)并讓其生效。
在動(dòng)態(tài)更新并發(fā)度時(shí),由于節(jié)點(diǎn)的并發(fā)度在某些場(chǎng)景下有特殊要求(例如:Global算子的并發(fā)度必須為1,不能更改;用戶顯式設(shè)置Kafka Source的并發(fā)度,以避免其超過其分區(qū)數(shù)),因此,實(shí)時(shí)計(jì)算Flink版會(huì)跳過已被設(shè)置并發(fā)度的節(jié)點(diǎn),僅修改未指定并發(fā)度的節(jié)點(diǎn)。如果您希望節(jié)點(diǎn)的并發(fā)度可以被動(dòng)態(tài)更新,建議不要通過DataStream#setParallelism方法或Source/Sink的并發(fā)度配置參數(shù)等方式指定算子的并發(fā)度。
操作步驟
進(jìn)入作業(yè)運(yùn)維頁(yè)面。
單擊對(duì)應(yīng)工作空間操作列下的控制臺(tái)。
在
頁(yè)面,單擊目標(biāo)作業(yè)名稱。
在部署詳情頁(yè)簽,單擊資源配置或運(yùn)行參數(shù)配置區(qū)域右側(cè)的編輯。
修改可以被動(dòng)態(tài)更新的參數(shù)取值后,單擊保存。
單擊頁(yè)面右上角的動(dòng)態(tài)更新。
重要僅并發(fā)度、系統(tǒng)檢查點(diǎn)間隔、系統(tǒng)檢查點(diǎn)超時(shí)時(shí)間以及兩次系統(tǒng)檢查點(diǎn)最短間隔參數(shù)支持動(dòng)態(tài)更新。參數(shù)值修改后,才會(huì)出現(xiàn)動(dòng)態(tài)更新按鈕,單擊按鈕后生效。如果您同時(shí)修改了無(wú)法動(dòng)態(tài)更新的參數(shù),需要重新啟動(dòng)作業(yè)才能使這些參數(shù)生效。
在彈出的對(duì)話框中查看提示信息后,單擊確定。
單擊確定后,您會(huì)看到正在更新的標(biāo)識(shí)。
相關(guān)文檔
不支持動(dòng)態(tài)更新的參數(shù),您可以在部署詳情頁(yè)簽配置后重啟作業(yè),詳情請(qǐng)參見配置作業(yè)部署信息和作業(yè)啟動(dòng)。
自動(dòng)調(diào)優(yōu)功能可以幫助您更合理地調(diào)整作業(yè)并發(fā)度和資源配置,解決相關(guān)性能調(diào)優(yōu)問題,詳情請(qǐng)參見配置自動(dòng)調(diào)優(yōu)。
作業(yè)智能診斷服務(wù)能夠幫您監(jiān)控作業(yè)健康狀況,分析和診斷錯(cuò)誤日志、異常運(yùn)行和風(fēng)險(xiǎn)情況,并提供可理解和可操作的診斷建議,詳情請(qǐng)參見作業(yè)智能診斷。
配置Task快速重啟,可以降低Failover對(duì)作業(yè)的影響,詳情請(qǐng)參見Task快速重啟配置。