Spark已經(jīng)取代Hadoop成為最活躍的開源大數(shù)據(jù)項目,但是,在選擇大數(shù)據(jù)框架時,企業(yè)不能因此就厚此薄彼
近日,著名大數(shù)據(jù)專家Bernard Marr在一篇文章中分析了Spark和 Hadoop 的異同
Hadoop和Spark均是大數(shù)據(jù)框架,都提供了一些執(zhí)行常見大數(shù)據(jù)任務(wù)的工具,但確切地說,它們所執(zhí)行的任務(wù)并不相同,彼此也并不排斥
雖然在特定的情況下,Spark據(jù)稱要比Hadoop快100倍,但它本身沒有一個分布式存儲系統(tǒng)
而分布式存儲是如今許多大數(shù)據(jù)項目的基礎(chǔ),它可以將 PB 級的數(shù)據(jù)集存儲在幾乎無限數(shù)量的普通計算機的硬盤上,并提供了良好的可擴(kuò)展性,只需要隨著數(shù)據(jù)集的增大增加硬盤
因此,Spark需要一個第三方的分布式存儲,也正是因為這個原因,許多大數(shù)據(jù)項目都將Spark安裝在Hadoop之上,這樣,Spark的高級分析應(yīng)用程序就可以使用存儲在HDFS中的數(shù)據(jù)了
與Hadoop相比,Spark真正的優(yōu)勢在于速度,Spark的大部分操作都是在內(nèi)存中,而Hadoop的MapReduce系統(tǒng)會在每次操作之后將所有數(shù)據(jù)寫回到物理存儲介質(zhì)上,這是為了確保在出現(xiàn)問題時能夠完全恢復(fù),但Spark的彈性分布式數(shù)據(jù)存儲也能實現(xiàn)這一點
另外,在高級數(shù)據(jù)處理(如實時流處理、機器學(xué)習(xí))方面,Spark的功能要勝過Hadoop
在Bernard看來,這一點連同其速度優(yōu)勢是Spark越來越受歡迎的真正原因
實時處理意味著可以在數(shù)據(jù)捕獲的瞬間將其提交給分析型應(yīng)用程序,并立即獲得反饋
在各種各樣的大數(shù)據(jù)應(yīng)用程序中,這種處理的用途越來越多,比如,零售商使用的推薦引擎、制造業(yè)中的工業(yè)機械性能監(jiān)控
Spark平臺的速度和流數(shù)據(jù)處理能力也非常適合機器學(xué)習(xí)算法,這類算法可以自我學(xué)習(xí)和改進(jìn),直到找到問題的理想解決方案
這種技術(shù)是最先進(jìn)制造系統(tǒng)(如預(yù)測零件何時損壞)和無人駕駛汽車的核心
Spark有自己的機器學(xué)習(xí)庫MLib,而Hadoop系統(tǒng)則需要借助第三方機器學(xué)習(xí)庫,如Apache Mahout
實際上,雖然Spark和Hadoop存在一些功能上的重疊,但它們都不是商業(yè)產(chǎn)品,并不存在真正的競爭關(guān)系,而通過為這類免費系統(tǒng)提供技術(shù)支持贏利的公司往往同時提供兩種服務(wù)
例如,Cloudera 就既提供 Spark 服務(wù)也提供 Hadoop服務(wù),并會根據(jù)客戶的需要提供最合適的建議
Bernard認(rèn)為,雖然Spark發(fā)展迅速,但它尚處于起步階段,安全和技術(shù)支持基礎(chǔ)設(shè)施方還不發(fā)達(dá),在他看來,Spark在開源社區(qū)活躍度的上升,表明企業(yè)用戶正在尋找已存儲數(shù)據(jù)的創(chuàng)新用法