Flink從入門到放棄(入門篇1)-Flink是什么


戳更多文章:

1-Flink入門

2-本地環境搭建&構建第一個Flink應用

3-DataSet API

4-DataSteam API

5-集群部署

6-分布式緩存

7-重啟策略

8-Flink中的窗口

9-Flink中的Time

Flink時間戳和水印

Broadcast廣播變量

FlinkTable&SQL

Flink實戰項目實時熱銷排行

Flink寫入RedisSink

17-Flink消費Kafka寫入Mysql

本文是例行介紹,熟悉的直接跳過 - 魯迅

魯迅: ...

大綱

入門篇:

 
image

放棄篇:

 
image

圖片顯示不了,戳這里:

https://github.com/wangzhiwubigdata/God-Of-BigData/blob/master/Flink

插個廣告

  • 全網唯一一個從0開始幫助Java開發者轉做大數據領域的公眾號~

  • 公眾號大數據技術與架構或者搜索import_bigdata關注,大數據學習路線最新更新,已經有很多小伙伴加入了~

 
image

Flink是什么

一句話概括

Apache Flink是一個面向分布式數據流處理和批量數據處理的開源計算平台,提供支持流處理和批處理兩種類型應用的功能。

前身

Apache Flink 的前身是柏林理工大學一個研究性項目, 在 2014 被 Apache 孵化器所接受,然后迅速地成為了Apache Software Foundation的頂級項目之一。

特點

現有的開源計算方案,會把流處理和批處理作為兩種不同的應用類型:流處理一般需要支持低延遲、Exactly-once保證,而批處理需要支持高吞吐、高效處理。
Flink是完全支持流處理,也就是說作為流處理看待時輸入數據流是無界的;批處理被作為一種特殊的流處理,只是它的輸入數據流被定義為有界的。

Flink組件棧

 
image

)

Deployment層

主要涉及了Flink的部署模式,Flink支持多種部署模式:本地、集群(Standalone/YARN)、雲(GCE/EC2)

 
image

Runtime層

Runtime層提供了支持Flink計算的全部核心實現,比如:支持分布式Stream處理、JobGraph到ExecutionGraph的映射、調度等等,為上層API層提供基礎服務

API層

API層主要實現了面向無界Stream的流處理和面向Batch的批處理API,其中面向流處理對應DataStream API,面向批處理對應DataSet API

Libaries層

  • 在API層之上構建的滿足特定應用的實現計算框架,也分別對應於面向流處理和面向批處理兩類

  • 面向流處理支持:CEP(復雜事件處理)、基於SQL-like的操作(基於Table的關系操作)

  • 面向批處理支持:FlinkML(機器學習庫)、Gelly(圖處理)

Flink的優勢

  • 支持高吞吐、低延遲、高性能的流處理
  • 支持高度靈活的窗口(Window)操作
  • 支持有狀態計算的Exactly-once語義
  • 提供DataStream API和DataSet API
 
image
 
image

Flink基本編程模型

  • Flink程序的基礎構建模塊是流(streams) 與 轉換(transformations)
  • 每一個數據流起始於一個或多個 source,並終止於一個或多個 sink

下面是一個由Flink程序映射為Streaming Dataflow的示意圖:

 
image

並行數據流示意圖:

 
image

Flink基本架構

  • Flink是基於Master-Slave風格的架構
  • Flink集群啟動時,會啟動一個JobManager進程、至少一個TaskManager進程
 
image

JobManager

  • Flink系統的協調者,它負責接收Flink Job,調度組成Job的多個Task的執行

  • 收集Job的狀態信息,並管理Flink集群中從節點TaskManager

TaskManager

  • 實際負責執行計算的Worker,在其上執行Flink Job的一組Task
  • TaskManager負責管理其所在節點上的資源信息,如內存、磁盤、網絡,在啟動的時候將資源的狀態向JobManager匯報

Client

  • 用戶提交一個Flink程序時,會首先創建一個Client,該Client首先會對用戶提交的Flink程序進行預處理,並提交到Flink集群

  • Client會將用戶提交的Flink程序組裝一個JobGraph, 並且是以JobGraph的形式提交的

最后

本文是例行介紹,熟悉的直接跳過。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM