Storm、Spark和MapReduce 開(kāi)源分布式計(jì)算系統(tǒng)框架比較
比較項(xiàng) Storm Spark Streaming 分布式計(jì)算在許多領(lǐng)域都有廣泛需求,目前流行的分布式計(jì)算框架主要有 Hadoop MapReduce, Spark Streaming, Storm; 這三個(gè)框架各有優(yōu)勢(shì),現(xiàn)在都屬于 Apache 基金會(huì)下的***項(xiàng)目,下文將對(duì)三個(gè)框架的特點(diǎn)與適用場(chǎng)景進(jìn)行分析,以便開(kāi)發(fā)者能快速選擇適合自己的框架進(jìn)行開(kāi)發(fā)。
Hadoop MapReduce 是三者中出現(xiàn)最早,知名度***的分布式計(jì)算框架,最早由 Google Lab 開(kāi)發(fā),使用者遍布全球(Hadoop PoweredBy);主要適用于大批量的集群任務(wù),由于是批量執(zhí)行,故時(shí)效性偏低,原生支持 Java 語(yǔ)言開(kāi)發(fā) MapReduce ,其它語(yǔ)言需要使用到 Hadoop Streaming 來(lái)開(kāi)發(fā)。Spark Streaming 保留了 Hadoop MapReduce 的優(yōu)點(diǎn),而且在時(shí)效性上有了很大提高,中間結(jié)果可以保存在內(nèi)存中,從而對(duì)需要迭代計(jì)算和有較高時(shí)效性要求的系統(tǒng)提供了很好的支持,多用于能容忍小延時(shí)的推薦與計(jì)算系統(tǒng)。Storm 一開(kāi)始就是為實(shí)時(shí)處理設(shè)計(jì),因此在實(shí)時(shí)分析/性能監(jiān)測(cè)等需要高時(shí)效性的領(lǐng)域廣泛采用,而且它理論上支持所有語(yǔ)言,只需要少量代碼即可完成適配器。
下面的表格是對(duì)三者部分特性的比較,描述時(shí)間為 2015-5-3,三個(gè)項(xiàng)目均處于快速迭代中,文中描述特性會(huì)隨時(shí)產(chǎn)生變化,如果與官方文檔產(chǎn)生出入以官方文檔為準(zhǔn)。
表格說(shuō)明:
開(kāi)源時(shí)間以 github 上最早的 commit 或者官網(wǎng)上最早發(fā)布版本的時(shí)間為準(zhǔn)。
當(dāng)前版本與特性描述截止 2015-5-3。
相關(guān)資料量通過(guò)比較官方文檔、搜索引擎、論壇等途徑得出。
部分比較數(shù)據(jù)來(lái)源于實(shí)踐或相關(guān)文章(未找到出處)。
本文會(huì)保持更新,如果數(shù)據(jù)發(fā)現(xiàn)有出入,歡迎指正。