我們知道,大數據的計算模式主要分為批量計算(batch computing)、流式計算(stream computing)、交互計算(interactive computing)、圖計算(graph computing)等。其中,流式計算和批量計算是兩種主要的大數據計算模式,分別適用于不同的大數據應用場景。
目前主流的流式計算框架有Storm、Spark Streaming、Flink三種,其基本原理如下:
Apache Storm
在Storm中,需要先設計一個實時計算結構,我們稱之為拓撲(topology)。之后,這個拓撲結構會被提交給集群,其中主節點(master node)負責給工作節點(worker node)分配代碼,工作節點負責執行代碼。在一個拓撲結構中,包含spout和bolt兩種角色。數據在spouts之間傳遞,這些spouts將數據流以tuple元組的形式發送;而bolt則負責轉換數據流。
Apache Spark
Spark Streaming,即核心Spark API的擴展,不像Storm那樣一次處理一個數據流。相反,它在處理數據流之前,會按照時間間隔對數據流進行分段切分。Spark針對連續數據流的抽象,我們稱為DStream(Discretized Stream)。 DStream是小批處理的RDD(彈性分布式數據集), RDD則是分布式數據集,可以通過任意函數和滑動數據窗口(窗口計算)進行轉換,實現并行操作。
Apache Flink
針對流數據+批數據的計算框架。把批數據看作流數據的一種特例,延遲性較低(毫秒級),且能夠保證消息傳輸不丟失不重復。
Flink創造性地統一了流處理和批處理,作為流處理看待時輸入數據流是無界的,而批處理被作為一種特殊的流處理,只是它的輸入數據流被定義為有界的。Flink程序由Stream和Transformation這兩個基本構建塊組成,其中Stream是一個中間結果數據,而Transformation是一個操作,它對一個或多個輸入Stream進行計算處理,輸出一個或多個結果Stream。
這三種計算框架的對比如下:
參考文章:
相關閱讀:
推薦系統相關術語知多少
如欲了解更多,歡迎搜索并關注先薦小助手微信號(recsysfc)。
本賬號為第四范式智能推薦產品先薦的官方賬號。賬號立足于計算機領域,特別是人工智能相關的前沿研究,旨在把更多與人工智能相關的知識分享給公眾,從專業的角度促進公眾對人工智能的理解;同時也希望為人工智能相關人員提供一個討論、交流、學習的開放平臺,從而早日讓每個人都享受到人工智能創造的價值。先薦_智能推薦系統_個性化推薦專家?www.tuijianxitong.cn