在前面的兩個章節:《[1] Flink大資料流式處理利劍: 簡介》和《[2] Flink大資料流式處理利劍: 用Flink進行統計的一個簡單例子》 主要對Flink進行了簡單介紹并演示了一個簡單的例子;這個章節,我們來看看Flink的部署架構,Flink支持各種部署方式,單機版和集群版;本文將會給你大家介紹一下Flink的集群版的部署架構,
Flink集群版的部署架構如下:一主多從;主指的就是JobManager, 從指的就是TaskManager;

從上面可以看出,Flink集群主要有三大部分:
| 組件 | 目的 | 實作方式 |
|---|---|---|
| Flink Client | 編譯批處理或者流處理到一個資料流圖并上傳到JobManager | 命令列,Restful終端,SQL客戶端,Python 腳本,Scala腳本 |
| JobManager | 是Flink的中央協調管理者,其支持三種job計較方式: Application 模式, Per-Job 模式, Session模式 | 單機,Docker,Docker Swarm,K8s,Yarn 都可以用來安裝部署JobManager |
| TaskManager | 是Job的具體執行者,其最侄訓執行Job |
上圖中黃色正方形代表的是Flink和外部配合作業的組件(我就不一一翻譯了)其是可選的;

值得一提的是Flink的應用資料的來源(Source)和處理后的儲存(Sinks),Flink目前支持了下面的連接器(Connectors),這些連接器在選型的時候可以根據不同的業務需求進行選型,需要的注意的是,有的連接器,只支持儲存處理后的結果,有的只支持作為Flink的資料源,有的不但能作為Flink的資料源也能作為處理后的儲存,


值得一提的是,當前很多云廠商的大資料流式處理方案都是基于Flink而進行托管的,比如下面的產品:
- AliCloud Realtime Compute
- AWS EMR
- AWS Kinesis 資料分析
- 華為云的Cloud Stream Service
由此可見,Flink的應用是多么的廣泛和優秀,
參考文獻:
https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/deployment/overview/
https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/connectors/datastream/overview/
https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/deployment/repls/python_shell/
https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/deployment/repls/scala_shell/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/413313.html
標籤:其他
