作者 | 葉佳純(自知),阿裡巴巴技術專家
本文由阿裡巴巴技術專家葉佳純(自知)分享,主要介紹如何在實時計算 Flink 版中跑通 DataStream 作業。文章大綱如下:
- 準備工作
- 建立和啟動作業
- Deployment 基本操作
- Deployment 配置
- Deployment 其他操作
- UI / Metrics 檢視
前面三篇内容已經介紹了實時計算 Flink 在阿裡雲的整體情況和典型場景,從本篇開始将介紹實時計算 Flink 的系列操作,首先介紹如何跑通第一個DataStream。
在開始之前,首先為大家介紹在VVP上最基本最核心的資源—Deployment,Deployment包括應用的狀态和相關配置,VVP會跟蹤和彙報每一個Deployment的狀态,産生相關的資源和資訊。
Jar打包上傳,這裡用社群的一個example,實際操作的時候可以用自己的開發應用。

在VVP頁面左側,點選“資源上傳”,然後點選右上角“上傳資源”,将打包好的Jar上傳。
建立作業有兩種方式,第一種是直接通過上傳的Jar點選建立作業,就會直接跳到建立頁面;
第二種是直接在VVP左側菜單點選建立作業,然後在Jar Uri選擇需要執行的jar檔案。
補充好作業名稱等資訊,作業就建立完成了。
建立作業後,在作業詳情頁可以看到一些基本操作和展示的基礎資訊。剛建立完的作業狀态是Cancelled,可以點選狀态欄右側的“啟動”來啟動作業。
啟動中,頁面會顯示目前執行個體,每一個執行個體都有唯一的ID。
在“運作事件”裡,可以看到一些更詳細的階段性的 Event,Event也是一種資源類型。如下圖光标所選位置,是Event告警的錯誤資訊,如果點選左側“+”号,可以看到日志詳情。
當“運作事件”中Deployment的狀态變成Running,說明作業啟動成功。注意:同一時間隻能運作一個Deployment執行個體,也就是說如果想要重新配置作業,那麼需要先停掉運作中的作業,重新配置之後再重新啟動新作業。
Deployment的基本操作
啟動、暫停、停止是針對此作業的基本操作,不多做贅述。提醒删除功能隻能針對處于Cancelled的作業操作,處于Running和Failed的作業是不能删除的。删除之後無法恢複,需要謹慎。
克隆是指,如果在不修改現有Deloyment的前提下,想做一些嘗試性的配置或對比,那麼可以先把作業克隆出來。
Deployment的配置
Deployment的配置可以在建立作業時修改,也可以在運作中進行修改。
上圖中的“更新政策”是指在修改Deployment時,是否需要重新開機,如果需要重新開機,是帶狀态重新開機還是不帶狀态重新開機。如下圖如果選擇None,那麼在修改作業配置時不會影響目前正在運作的作業。
如果需要重新開機作業,有兩種選擇,Stateless是不帶狀态,即停止目前作業,并在調整配置重新啟動一個新作業;Stateful是帶狀态,即在停作業前,對作業做一個Savepoint,然後用最新配置啟動一個新作業并從這個Savepoint恢複。
“恢複政策”有三個選項,None表示不帶狀态恢複作業;Latest Savepoint是指用最新的Savepoint恢複作業;Latest State是指用Checkpoint或Savepoint中最新的那個來恢複作業。當我們需要針對已經停止的作業重新啟動時,會用到恢複政策。
下圖左側“建立Savepoint的最大重試次數”,因為Savepoint是寫在OSS裡的,如果遇到問題建立Savepoint失敗了,重試次數是需要符合這裡的配置的,超過最大配置次數Savepoint的操作就會失敗。
下圖右側“建立執行個體的最大重試次數”,是指啟動Deployment的最大重試次數,當遇到問題Deployment的重試超出了配置的次數,啟動Deployment的狀态就會變成紅色的Failed。
Stop with Drain是指 stop接口是不是帶Drain參數;标簽是指可以給Deployment打多個标簽,作用是可以在作業清單更快捷的搜尋到所需要的Deployment。
“附加依賴Jar”, 在這裡不僅可以放額外的Jar,也可以放一些額外的資源檔案。
“Flink 版本”,現在隻有1.10和1.11,兩個版本可供選擇。下圖是 Flink 的常見配置,不再贅述。
作業快照的使用
作業快照的使用有幾種方法:
第一種點選Savepoint一次就會觸發Savepoint而留下快照;
第二種是運作中的作業,預設每10秒Checkpoint會留下一個快照;
作業快照還可以通過選擇某個早期的快照而不是最近的去恢複作業。點選“從該快照複制作業”,就會folk一個Deployment,與克隆很像,但是這是指定了某個Savepoint的。複制後啟動此作業的話,就會從指定的Savepoint恢複作業。
Secret Values
Secret Value隻能使用在Jar URI和 Flink Configuration兩個地方。
通常用在一些比較敏感的場景,比如Jar URI中的host部分不想暴露,那怎麼做呢?點選VVP頁面左側“變量配置”,點選新增變量,在彈窗完善變量名稱和變量值。
建立完成,可以看到僅僅顯示新增變量名稱,變量值是隐藏不顯示的。然後去作業應用這個變量。
打開作業清單,選擇應用作業,在Jar URI中設定變量。
如下圖在頁面中右側有 “名額”,點選名額,跳轉頁面,即可檢視作業的名額資訊。
點選“ Flink UI”的頁面。Flink UI有個使用技巧,當啟動作業後,如果有問題導緻VVP上一直顯示啟動中但實際作業已經起來了,那麼在 Flink頁面裡能看到第一手的資訊,可以通過 Flink UI點選檢視。