0.背景
關(guān)于 Flink 的 Application Mode 自己還比較陌生廓旬,像 -d 等參數(shù)自己也不熟悉呆抑,決定好好總結(jié)一下绍载,基于 Flink-1.12.x
1.Session Mode
這個不用多說墨榄,也就是起一個 session膨报,然后會有多個程序提交到這一個 session 中静浴。
好處:集群資源僅分配一次堰氓,充分利用資源,程序App 啟動較快
壞處:可能會連鎖式的重啟苹享,jobManager 負(fù)載大
2.Per-Job Mode
使用的比較多双絮,一個 application 一個 flink cluster
好處: 資源隔離,粒度更細(xì)得问,方便管理單個 job
壞處:當(dāng)某個機器上有多個 client 時囤攀,會有較高的網(wǎng)絡(luò)負(fù)載( 下載 jar 、傳輸 jar )以及消費大量的 CPU 來執(zhí)行 main方法
3.Application Mode
Application Mode 與 Per-Job Mode 類似宫纬,主要是為了解決 Per-Job Mode 的不足焚挠,通過 yarn.provided.lib.dirs
另外 client 是在 JobManager 上執(zhí)行的,可以避免 帶寬漓骚、CPU 的熱點問題蝌衔。
并且相比于 Per-Job Mode 來說,更強大蝌蹂,可以提交多個 job
4.總結(jié)
Application Mode 與 Per-Job Mode 類似噩斟,它主要是為了解決 Per-Job Mode 中由于 client 端導(dǎo)致的 帶寬、CPU 問題
Session Mode
5.參考
https://ci.apache.org/projects/flink/flink-docs-release-1.12/deployment/#application-mode
https://ci.apache.org/projects/flink/flink-docs-stable/deployment/resource-providers/yarn.html