Storm,Spark和Samza三種框架有何區別?
Storm,Spark和Samza這 三種實時計算系統都是開源的分散式系統,具有低延遲、可擴充套件和容錯性諸多優點,它們的共同特色在於:允許你在執行資料流程式碼時,將任務分配到一系列具有容錯能力的計算機上並行執行。
此外,它們都提供了簡單的 API來簡化底層實現的複雜程度。那麼,它們之間有何區別呢?
Apache Storm
在Storm中,先要設計一個用於實時計算的圖狀結構,我們稱之為拓撲(topology)。這個拓撲將會被提交給叢集,由叢集中的主控節點(master node)分發程式碼,將任務分配給工作節點(worker node)執行。一個拓撲中包括spout和bolt兩種角色,其中spout傳送訊息,負責將資料流以tuple元組的形式傳送出去;而bolt則負責轉換這些資料流,在bolt中可以完成計算、過濾等操作,bolt自身也可以隨機將資料傳送給其他bolt。由spout發射出的tuple是不可變陣列,對應著固定的鍵值對。
Apache Spark
Spark Streaming是核心Spark API的一個擴充套件,它並不會像Storm那樣一次一個地處理資料流,而是在處理前按時間間隔預先將其切分為一段一段的批處理作業。Spark針對持續性資料流的抽象稱為DStream(DiscretizedStream),一個DStream是一個微批處理(micro-batching)的RDD(彈性分散式資料集);而RDD則是一種分散式資料集,能夠以兩種方式並行運作,分別是任意函式和滑動視窗資料的轉換。gendan5.com/zs/000001.html
Apache Samza
處理資料流時,會分別按次處理每條收到的訊息。Samza的流單位既不是元組,也不是Dstream,而是一條條訊息。在Samza中,資料流被切分開來,每個部分都由一組只讀訊息的有序數列構成,而這些訊息每條都有一個特定的ID(offset)。該系統還支援批處理,即逐次處理同一個資料流分割槽的多條訊息。Samza的執行與資料流模組都是可插拔式的,儘管Samza的特色是依賴Hadoop的Yarn(另一種資源排程器)和Apache Kafka。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014563/viewspace-2948727/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 流式大資料處理的三種框架:Storm,Spark和Samza大資料框架ORMSpark
- 三個大資料處理框架:Storm,Spark和Samza介紹比較大資料框架ORMSpark
- 大資料框架對比 - Hadoop、Spark、Storm、Samza、Spark、Flink大資料框架HadoopSparkORM
- Spark Streaming,Flink,Storm,Kafka Streams,Samza:如何選擇流處理框架SparkORMKafka框架
- Flask框架和Django框架有什麼區別?Flask框架Django
- Apache Spark:資料框,資料集和RDD之間的區別 - BaeldungApacheSpark
- Spark TempView和GlobalTempView的區別SparkView
- hadoop和spark的區別HadoopSpark
- Flask框架和Django框架有什麼區別?詳細分析!Flask框架Django
- C# 中,(int),Int32.Parse() 和 Convert.toInt32() 三種方法有何區別C#
- Python學習之Django和Flask框架有什麼區別?PythonDjangoFlask框架
- Django和Flask框架有什麼區別?Python學習分享DjangoFlask框架Python
- Spark Streaming和Flink的區別Spark
- C++三種容器:list、vector和deque的區別C++
- laravel/laravel和laravel/framework有何區別?LaravelFramework
- EMR和ERP有何區別(轉)
- 三種連結方式的區別
- Hadoop Storm Spark比較HadoopORMSpark
- CRM系統和ERP系統的三種區別
- .NET中的三種Timer的區別和用法
- Q:Spark和Hadoop的架構區別SparkHadoop架構
- Python學習之Django和其他Python框架有什麼區別?PythonDjango框架
- Dubbo和JDK的SPI究竟有何區別?JDK
- 超外差和超再生模組有何區別?
- MySql三種常見引擎及其區別MySql
- String中三種加法的區別
- SQL Server 三種複製的區別SQLServer
- Storm與Spark Streaming比較ORMSpark
- 文字框的readonly和disabled屬性區別
- @AutoConfigurationPackage 和 @ComponentScan 有何區別?Package
- 住宅IP和資料中心IP有何區別?
- 在Linux中,Jail和Chroot有何區別?LinuxAI
- 常見的三種工廠模式區別模式
- Spark 外部變數和BroadCast變數的區別Spark變數AST
- <input>文字框的readonly和disabled屬性區別
- 伺服器和虛擬主機有何區別伺服器
- DOM 精通了?請問 Node 和 Element 有何區別?
- DOM 精通了?請問 Node 和 Elment 有何區別?