成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

流式大數據處理的三種框架:Storm,Spark和Samza

大數據 Spark
許多分布式計算系統都可以實時或接近實時地處理大數據流。本文將對三種Apache框架分別進行簡單介紹,然后嘗試快速、高度概述其異同。

 許多分布式計算系統都可以實時或接近實時地處理大數據流。本文將對三種Apache框架分別進行簡單介紹,然后嘗試快速、高度概述其異同。

Apache Storm

在Storm中,先要設計一個用于實時計算的圖狀結構,我們稱之為拓撲(topology)。這個拓撲將會被提交給集群,由集群中的主控節點(master node)分發代碼,將任務分配給工作節點(worker node)執行。一個拓撲中包括spout和bolt兩種角色,其中spout發送消息,負責將數據流以tuple元組的形式發送出去;而bolt則負責轉發數據流,在bolt中可以完成計算、過濾等操作,bolt自身也可以隨機將數據發送給其他bolt。在storm中,每個都是tuple是不可變數組,對應著固定的鍵值對。

 

流式大數據處理的三種框架:Storm,Spark和Samza

 

Apache Spark

Spark Streaming是核心Spark API的一個擴展,它并不會像Storm那樣一次一個地處理數據流,而是在處理前按時間間隔預先將其切分為一段一段的批處理作業。Spark針對持續性數據流的抽象稱為DStream(DiscretizedStream),一個DStream是一個微批處理(micro-batching)的RDD(彈性分布式數據集);而RDD則是一種分布式數據集,能夠以兩種方式并行運作,分別是任意函數和滑動窗口數據的轉換。

 

流式大數據處理的三種框架:Storm,Spark和Samza

 

Apache Samza

Samza處理數據流時,會分別按次處理每條收到的消息。Samza的流單位既不是元組,也不是Dstream,而是一條條消息。在Samza中,數據流被切分開來,每個部分都由一組只讀消息的有序數列構成,而這些消息每條都有一個特定的ID(offset)。該系統還支持批處理,即逐次處理同一個數據流分區的多條消息。Samza的執行與數據流模塊都是可插拔式的,盡管Samza的特色是依賴Hadoop的Yarn(另一種資源調度器)和Apache Kafka。

 

流式大數據處理的三種框架:Storm,Spark和Samza

 

#p#

共同之處

以上三種實時計算系統都是開源的分布式系統,具有低延遲、可擴展和容錯性諸多優點,它們的共同特色在于:允許你在運行數據流代碼時,將任務分配到一系列具有容錯能力的計算機上并行運行。此外,它們都提供了簡單的API來簡化底層實現的復雜程度。

三種框架的術語名詞不同,但是其代表的概念十分相似:

 

流式大數據處理的三種框架:Storm,Spark和Samza

 

對比圖

下面表格總結了一些不同之處:

 

流式大數據處理的三種框架:Storm,Spark和Samza

 

#p#

數據傳遞形式分為三大類:

最多一次(At-most-once):消息可能會丟失,這通常是最不理想的結果。

最少一次(At-least-once):消息可能會再次發送(沒有丟失的情況,但是會產生冗余)。在許多用例中已經足夠。

恰好一次(Exactly-once):每條消息都被發送過一次且僅僅一次(沒有丟失,沒有冗余)。這是最佳情況,盡管很難保證在所有用例中都實現。

另一個方面是狀態管理:對狀態的存儲有不同的策略,Spark Streaming將數據寫入分布式文件系統中(例如HDFS);Samza使用嵌入式鍵值存儲;而在Storm中,或者將狀態管理滾動至應用層面,或者使用更高層面的抽象Trident。

用例

這三種框架在處理連續性的大量實時數據時的表現均出色而高效,那么使用哪一種呢?選擇時并沒有什么硬性規定,最多就是幾個指導方針。

如果你想要的是一個允許增量計算的高速事件處理系統,Storm會是最佳選擇。它可以應對你在客戶端等待結果的同時,進一步進行分布式計算的需求,使用開箱即用的分布式RPC(DRPC)就可以了。最后但同樣重要的原因:Storm使用Apache Thrift,你可以用任何編程語言來編寫拓撲結構。如果你需要狀態持續,同時/或者達到恰好一次的傳遞效果,應當看看更高層面的Trdent API,它同時也提供了微批處理的方式。

 

流式大數據處理的三種框架:Storm,Spark和Samza

 

使用Storm的公司有:Twitter,雅虎,Spotify還有The Weather Channel等。

說到微批處理,如果你必須有狀態的計算,恰好一次的遞送,并且不介意高延遲的話,那么可以考慮Spark Streaming,特別如果你還計劃圖形操作、機器學習或者訪問SQL的話,Apache Spark的stack允許你將一些library與數據流相結合(Spark SQL,Mllib,GraphX),它們會提供便捷的一體化編程模型。尤其是數據流算法(例如:K均值流媒體)允許Spark實時決策的促進。

使用Spark的公司有:亞馬遜,雅虎,NASA JPL,eBay還有百度等。

如果你有大量的狀態需要處理,比如每個分區都有許多十億位元組,那么可以選擇Samza。由于Samza將存儲與處理放在同一臺機器上,在保持處理高效的同時,還不會額外載入內存。這種框架提供了靈活的可插拔API:它的默認execution、消息發送還有存儲引擎操作都可以根據你的選擇隨時進行替換。此外,如果你有大量的數據流處理階段,且分別來自不同代碼庫的不同團隊,那么Samza的細顆粒工作特性會尤其適用,因為它們可以在影響最小化的前提下完成增加或移除的工作。

使用Samza的公司有:LinkedIn,Intuit,Metamarkets,Quantiply,Fortscale等。

結論

本文中我們只對這三種Apache框架進行了簡單的了解,并未覆蓋到這些框架中大量的功能與更多細微的差異。同時,文中這三種框架對比也是受到限制的,因為這些框架都在一直不斷的發展,這一點是我們應當牢記的。

責任編輯:王雪燕 來源: 36大數據
相關推薦

2017-02-14 13:11:23

HadoopStormSamza

2022-03-01 08:40:34

StormHadoop批處理

2013-09-23 09:24:33

2013-09-25 15:28:42

Storm流式處理框架框架

2020-12-23 15:42:42

大數據大數據技術大數據框架

2021-07-20 15:37:37

數據開發大數據Spark

2018-04-03 10:33:15

大數據

2017-09-06 17:05:54

大數據處理流程處理框架

2024-10-10 10:07:07

2017-02-10 09:00:03

HadoopSparkStorm

2018-01-22 08:33:28

SparkHadoop計算

2023-05-16 16:07:07

大數據數據管理工具

2019-11-29 15:47:42

HadoopSparkFlink

2017-07-21 14:22:17

大數據大數據平臺數據處理

2014-12-02 09:49:12

Spark大數據

2023-08-07 09:00:00

2020-09-08 12:38:08

大數據數據分析工具

2018-12-07 14:50:35

大數據數據采集數據庫

2020-11-02 15:56:04

大數據數據庫技術

2018-07-25 15:31:51

SparkFlink大數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品福利 | 久久精品视频在线播放 | 天天天操 | av第一页 | 一本色道精品久久一区二区三区 | 欧美日韩不卡合集视频 | 国产高清在线 | 国产成人精品一区二区三区 | 国内精品久久精品 | 免费一级做a爰片久久毛片潮喷 | 国产精品自拍视频网站 | 国产伦精品一区二区三毛 | 免费国产黄网站在线观看视频 | 亚洲精品国产电影 | 亚洲最大成人综合 | 日韩av成人| 亚洲精品一区在线观看 | 老牛嫩草一区二区三区av | 欧美一区二区三区的 | 亚洲精品久| 精品免费国产视频 | 岛国av免费在线观看 | 夜夜操天天艹 | 国产欧美一区二区三区在线看 | 成人性视频在线播放 | 福利视频网站 | 国产目拍亚洲精品99久久精品 | 精品一区二区三区在线视频 | 男女视频免费 | 亚洲在线中文字幕 | 久久精品小视频 | 国产精品国产三级国产a | 日韩有码一区二区三区 | 中文字幕日韩一区 | 人人九九 | 国产高清在线 | 国产三级电影网站 | 中国一级特黄真人毛片免费观看 | 91色站| 成人深夜福利 | 中国一级大黄大片 |