天天看點

2023-181,#每日一悟每日進步##大資料#大資料流計算工具摘錄學習:1、Storm計算模型稱為Topology,類

作者:DevOps工程師老林

2023-181,#每日一悟每日進步##大資料#

大資料流計算工具摘錄學習:

1、Storm

計算模型稱為Topology,類似Map-Reduce,不同在于Topology會永遠執行下去。

Topology由Spout和Bold組成的有向無環圖,每個節點都會對流上的資料進行一定的處理,然後傳遞給後續節點做下一步處理。

Spout是Stream的起點,是産生Tuple的源頭,它會對某類輸入源如Kafka,把資料封裝成Tuple的形式吐給後續的一個或多個Bolt進行處理。

Bolt是Topology中進行資料處理的單元,可以過濾、清洗、轉換、聚合和關聯各種操作。理想情況下,每一個Bolt對于Tuple的處理應該是一個簡單的邊界清晰的操作。

Stream指一個沒有邊界的、永遠向前流動的資料流。

Tuple是Storm中對資料的統一封裝格式,可以包含多個預定義的基本類型字段。

2、Spark Streaming

以Micro-batch方式工作,實時性比Storm差。

(1)DStream程式設計模型

将極短時間間隔(Batch Duration)内的資料組織成一個RDD,流上的各種操作都是以RDD為基本機關進行的。RDD的計算分為Transformation和action兩大類。

支援視窗操作機制,視窗的大小和移動的步幅必須是Batch Duration的整數倍。

(2)Structured Streaming程式設計模型

把資料流當做一個沒有邊界的資料表來對待,可以在流上使用Spark SQL進行流處理,大大降低了流計算的技術門檻。流上的計算會被轉化為資料表上的查詢,每次的查詢結果會作為一個新的“資料表”,後續的操作将在新的資料表上執行。

同樣支援視窗操作,新的視窗操作可以基于“事件時間”,而不再是資料進入流的時間,實用性更高。

從Spark 2.3開始,支援stream-stream Join,包括内關聯和外關聯。

3、Flink

程式設計模型與Spark DStream的API類似,流的起點往往是資料的輸入源,稱為Source,針對Stream的操作稱為Transformation,流的終點是資料的輸出目的地,稱為Sink。

支援視窗操作,且細化時間為事件時間(事件建立的時間)、攝取時間(事件進入Flink資料流的時間)、處理時間(每一個操作在執行的本地時間)。

整體架構從下到上分别為:Stateful Stream Processing、DataStream/DataSet API、Table API、SQL。

Flink以流計算核心為基礎,将資料處理能力從流計算拓展到了批處理。

2023-181,#每日一悟每日進步##大資料#大資料流計算工具摘錄學習:1、Storm計算模型稱為Topology,類
2023-181,#每日一悟每日進步##大資料#大資料流計算工具摘錄學習:1、Storm計算模型稱為Topology,類
2023-181,#每日一悟每日進步##大資料#大資料流計算工具摘錄學習:1、Storm計算模型稱為Topology,類

繼續閱讀