通常使用者線上下主要使用 Flink run,這會造成一些問題,比如:同一個配置因版本而變化;無法快速切換不同版本;無法從之前的作業恢復。
那麼如何從線下遷移到線上呢?本文將透過下面四部分來向大家介紹。
比如高階配置裡的行為配置,分為三部分:升級策略、初始狀態和恢復策略。升級策略一般選擇Stateless,初始狀態選擇Running,恢復策略選擇Latest State。
升級策略選擇Stateless,表示針對已經在執行的作業,編輯並儲存配置後,會直接把原作業停掉,然後重新啟動一個更新的作業;選擇Stateble,針對正在執行的作業做配置編輯並儲存的話,作業會先做一次Savepoint,然後載入新的配置並使用該 Savepoint啟動新的作業。恢復策略選擇LatestSavepoint,是指作業在暫停情況下,如果再啟動,將使用最新的Savepoint啟動。上面介紹的是 Flink 配置中比較重要的部分,下面圖片顯示的是另外一部分可以設定Checkpoint間隔等的配置,接下來是資源配置。日誌配置部分可以選擇日誌儲存位置,方便日後如果作業出現問題,可以方便的排查問題。
Flink 作業配置完成並啟動執行後,如果出現異常,可以透過執行事件檢視執行情況和問題。也可以開啟 Flink UI的Job Manager,檢視日誌情況。
二、多Jar情況下,使用者如何新增其他依賴的Jar一些使用者有自定義依賴且無法透過 fat jar 解決問題。舉個例子,A使用者有自己的main Jar和一些其他的Jar,這些Jar的應用場景不一樣,那麼首先需要在資源管理頁面上傳Jar包,上傳完成之後就可以在頁面使用該檔案。上傳後再到高階配置中,找到“額外依賴的Jar”,下拉並選擇剛剛上傳的Jar 包就可以了。
三、使用者如何透過配置檔案定義作業在資源管理裡上傳檔案,然後在高階配置裡選新增依賴,選擇需要的依賴。如果啟動函數里,main class是需要讀取某個檔案,先透過依賴新增檔案,然後再根據提示的方式讀取檔案。
以上兩個方式是放置使用者Jar的方式,jar 和其他檔案都可以在這裡存放。
四、如何複用原來的state加速作業恢復如果在執行作業時發現問題,一般情況下是停下來然後找到問題修復後再重啟。使用者需要在建立的時候指定 Checkpoint 需要的 OSS。 如果開啟了Checkpoint,後續作業就可以直接從Checkpoint中恢復。首先確認高階配置中恢復策略選擇LatestState或LatestSavepoint。在這個前提下,可以暫停作業(千萬不要停止作業),暫停會觸發Savepoint,當再次點選啟動時,會從這次Savepoint點恢復。
當作業正在執行,想對當前作業進項複製,如何操作呢?在作業控制頁面點選Checkpoint,找到歷史快照並點選其對應的最右側的“從該快照複製作業”,那麼就完成了把當前作業複製的操作,複製內容包括正在執行作業的Jar 包配置等。點選啟動後,可以從作業快照中檢視到新作業是從上個作業最近的一次Savepoint中複製啟動的。