作者:高二蛋
主要内容:
-
- Flink是什麼
- 為什麼用Flink?
- 流處理的發展和演變
- Flink的主要特點
- Flink VS Spark Streaming
1.Flink是什麼
-
- Flink是一個架構(可以處理流和批處理的架構)和分布式處理引擎,用于對無界資料和有界資料流進行狀态計算;
2.為什麼選擇 Flink:
-
- 流資料更真實的反應我們的生活方式;
- 傳統的資料架構是基于有限資料集的;
- 我們的目标:
-
- 低延遲;
- 吞吐性;
- 結果的準确性和良好的容錯性;
3.哪些行業需要處理流資料呢?
-
- 電商和市場營銷:
-
- 資料報表,廣告投放,業務流程需要;
- 物聯網(IOT):
-
- 傳感器實時資料的采集和顯示,實時報警,交通運輸業;
- 電信業:
-
- 基站流量比對;
- 銀行和金融業:
-
- 實時結算和通知推送,實時監測異常行為;
4.流式處理的演變:
https://developer.hs.net/thread/1009
5.Flink主要特點:
-
- 事件驅動:
- 基于流的世界觀:
- 分層API:
- 支援事件事件(event-time)和處理時間(processing-time)語義;
- 精确一次(exactly-once)的狀态一緻性保證;
- 低延遲,每秒處理百萬個事件,毫秒級延遲;
- 與衆多常用存儲系統的連接配接;
- 高可用,動态擴充,實作7*24小時全天候運作;
-
- 結構:
-
- Flink:流(stream)
- Spark Streaming:微批(micro-batching)
- 資料模型:
-
- Flink:基本資料模型就是資料流,以及事件(Event)序列;
- Spark采用RDD模型,SparkStreaming的DStream實際上也就是一組組小批資料RDD的集合;
- 運作時架構:
-
- Flink:是标準的流執行模式,一個事件在一個節點處理完後可以直接發往下一個節點進行處理;(因為沒有stage的劃分,是以延遲性低)
- Spark是批處理,将DAG劃分為不同的stage,一個完成之後才可以計算下一個;