iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0

今天來講 Flink 提供的 Web UI 有哪些功能,首先先看一下它的首頁

https://ithelp.ithome.com.tw/upload/images/20230918/20161625LwwwUSsxJ2.png

左邊有:

  • Overview: 就上圖,一個當前概覽,你可以看到 Slot 跟 Job 的數量以及狀態,還有正在執行的 job 有哪些。
  • Jobs
    • Running Jobs: 正在執行的 jobs
    • Completed Jobs: 已完成的 jobs,包含被取消的
  • Task Managers
  • Job Manager
  • Submit New Job: 提交新的 job

有幾個詞,要先解釋一下,你才好理解這些功能

Job

就…一個工作,可以是 batch 也可以是 streaming,類似於 Airflow 的 DAG 層級

Slot

硬要翻的話,叫插槽,不過沒什麼意義,就還是叫 slot 吧。概念上就是可以執行幾個 job x 平行數量。我說過 Flink 也是有設計分佈式計算的,每個 Job 都是可以支援平行運算,但依賴於你有幾個 slot 跟設定要開幾個 pipeline。

Job Manager

通常是指主要的 master 節點,提供 Web UI 跟監控 Task

Task Manager

一般來說就是子節點 slave,會提供 slot。由於是分佈計算,你可以提供很多台 task 機器,依主機的性能決定要提供幾個 slot。一般來說,就是看 CPU core 數比較保險。

Submit New Job

https://ithelp.ithome.com.tw/upload/images/20230918/20161625o0cewYDEJr.png

你要先按 Add New 來上傳一個 jar 檔,這個jar 檔內要包含你寫好的 flink 程式,最好是將依賴的 libs 一起打包起來。

像上圖中,就是已上傳一個 flink-develop-SNAPSHOT.jar

當我們上傳完,點了這個 jar 檔後,就可以再輸入一些參數

Entry Class

提供 job 的完整 package 新徑,像是 com.kk.my.package.ExampleJob

Parallelism (optional)

前面說的平行度,這個值預設會看設定檔,但你也可以在這裡設定。另外程式內也可以讀到這個值做調整。例如你可以寫死成 1,也可以設定是 2 倍於這個參數。

越高的平行度不代表越好,你有可能浪費你的 slot,但資料量其實一個 slot 就可以消化掉了。

Program Arguments (optional)

一些參數,可以在這裡帶入程式中。我習慣上會在程式內讀取,並提供預設值。例如 TimeWindow 的時間,或是 batch 寫入的數量,或是 query 的起始時間等等。

Savepoint Path (optional)

存檔點,算是 Flink 很重要的機制之一。它會將執行到一半的 job 寫在 disk 內,當下次你要從這個存檔點復原時,只要輸入中斷時的存檔路徑即可。

Running Jobs

https://ithelp.ithome.com.tw/upload/images/20230918/20161625wOyFJLvCOh.png

到這層就有點商業機密了,請容我使用網路上的圖片。

點開 Running Jobs 裡面正在運作的 job,就會看到上面這個畫面。類似於 DAG,job 內的 task 會顯示每個階段所做的事。預設你做的 N 件事如果是可以合併的話,會被收在一個 task 內,使用一個 slot。

在這層的意義,是要看資料卡在哪裡。有時候某些 task 處理不來上游的量,你就要在那個點多開一些 slot 來消化掉。

另外右上的 **Cancel Job** 要注意,它是「取消」而不是存檔。如果只點了「取消」,那麼連自動存檔的記錄點也會被刪掉。要保留 savepoint 必須另外下 command。


比較重要的應該就這些了,因為 Job Manager, Task Manager 都是用來看負載量比較多,常用的就上用講的這些了。


上一篇
使用 Intellij 開發 Flink - Day17
下一篇
Flink Windows - Day19
系列文
用 Airflow & Flink 來開發 ETL 吧30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言