Flink基本概念 1.The history of Flink? 2.What is Flink? Apache Flink是一個開源的分散式、高性能、高可用、準確的流處理框架,主要由Java代碼實現,支持實時流(stream)處理和批(batch)處理,批數據只是流數據的一個極限的特例。原生支持 ...
Flink基本概念
1.The history of Flink?
2.What is Flink?
Apache Flink是一個開源的分散式、高性能、高可用、準確的流處理框架,主要由Java代碼實現,支持實時流(stream)處理和批(batch)處理,批數據只是流數據的一個極限的特例。原生支持了迭代管理、記憶體計算和程式優化。
3.The Feature of Flink?
流式優先(streaming-first:連續處理),容錯(fault-tolerant:有狀態的計算),可伸縮(scalable:可支持上千個節點),性能(performance:高吞吐-每秒處理的數據量很大、低延遲-數據產生時Flink立刻可以處理掉 數據的產生到處理間隔的時間很短)。
4.The Architecture of Flink?
(1)部署deploy : 支持local(single jvm)、支持cluster(standalone、yarn)、支持cloud(GCE、EC2) (2)核心core : 分散式流處理框架 (3)APIs : DataStream API、DataSet API (4)Libraries : DataStream API -- CEP、Table,DataSet API -- FLinkML、Gelly、Table
5.The basic components of Flink?
Data Source、Transformations、Data Sink
6.The Distributed Execution about Flink?
7.The different between Batch Processing and Streaming Processing?
流處理是一個節點把一條記錄處理完後序列化到緩存里另一個節點立刻把數據從緩存中拉過去進行處理,批處理是一個節點處理一條記錄放入緩存中另一個節點不會立刻從緩存中拉取記錄直到所有的記錄都執行完為止在統一從緩存裡拉取數據。
8.The diagram of Flink Cluster?
9.The application scene of Flink?
優化電商網站的實時搜索結果如阿裡巴巴的實時更新產品細節使用Flink,實時更新庫存細節使用Blink。
10.Flink vs Storm vs Spark Streaming vs Trident?
Flink可以通過設置閾值來實現流處理或批處理,如果將閾值設為0那麼就相和Storm一樣的實時流處理來一條數據處理一條,真正的實現了低延遲但是相對的吞吐量會降低,如果閾值設為無限大相當於批處理一樣那麼吞吐量會提高卻無法實現低延遲的效果,當然根據實際情況可以吧把值設為合適的值。Storm就是實時流處理來一條數據處理一條,保證數據至少被處理一次,所以可能會處理重覆,其他三者都是保證了僅一次的處理。Spark Streaming是微批處理(mirco-batching),本質上不屬於實時流處理,而是每隔一定的時間段會處理一次數據,一批一批的小批量處理。Trident是基於Storm的一個封裝,是一批一批的小批量處理。
11.Flink execution process?