溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Hadoop與Spark哪個更好

發(fā)布時間:2021-12-10 11:46:08 來源:億速云 閱讀:162 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容介紹了“Hadoop與Spark哪個更好”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

 Hadoop框架的主要模塊包括如下:

  • Hadoop Common

  • Hadoop分布式文件系統(tǒng)(HDFS)

  • Hadoop YARN

  • Hadoop MapReduce


雖然上述四個模塊構(gòu)成了Hadoop的核心,不過還有其他幾個模塊。這些模塊包括:Ambari、Avro、Cassandra、Hive、 Pig、Oozie、Flume和Sqoop,它們進(jìn)一步增強(qiáng)和擴(kuò)展了Hadoop的功能。

Spark確實(shí)速度很快(最多比Hadoop MapReduce快100倍)。Spark還可以執(zhí)行批量處理,然而它真正擅長的是處理流工作負(fù)載、交互式查詢和機(jī)器學(xué)習(xí)。

相比MapReduce基于磁盤的批量處理引擎,Spark賴以成名之處是其數(shù)據(jù)實(shí)時處理功能。Spark與Hadoop及其模塊兼容。實(shí)際上,在Hadoop的項(xiàng)目頁面上,Spark就被列為是一個模塊。

Spark有自己的頁面,因?yàn)殡m然它可以通過YARN(另一種資源協(xié)調(diào)者)在Hadoop集群中運(yùn)行,但是它也有一種獨(dú)立模式。它可以作為 Hadoop模塊來運(yùn)行,也可以作為獨(dú)立解決方案來運(yùn)行。

MapReduce和Spark的主要區(qū)別在于,MapReduce使用持久存儲,而Spark使用彈性分布式數(shù)據(jù)集(RDDS)。

性能
Spark之所以如此快速,原因在于它在內(nèi)存中處理一切數(shù)據(jù)。沒錯,它還可以使用磁盤來處理未全部裝入到內(nèi)存中的數(shù)據(jù)。
Spark的內(nèi)存處理為來自多個來源的數(shù)據(jù)提供了近乎實(shí)時分析的功能:營銷活動、機(jī)器學(xué)習(xí)、物聯(lián)網(wǎng)傳感器、日志監(jiān)控、安全分析和社交媒體網(wǎng)站。另 外,MapReduce使用批量處理,其實(shí)從來就不是為驚人的速度設(shè)計(jì)的。它的初衷是不斷收集來自網(wǎng)站的信息,不需要這些數(shù)據(jù)具有實(shí)時性或近乎實(shí)時性。

易用性
支持Scala(原生語言)、Java、Python和Spark SQL。Spark SQL非常類似于SQL 92,所以幾乎不需要經(jīng)歷一番學(xué)習(xí),馬上可以上手。
Spark還有一種交互模式,那樣開發(fā)人員和用戶都可以獲得查詢和其他操作的即時反饋。MapReduce沒有交互模式,不過有了Hive和Pig等附加模塊,采用者使用MapReduce來得容易一點(diǎn)。

成本
“Spark已證明在數(shù)據(jù)多達(dá)PB的情況下也輕松自如。它被用于在數(shù)量只有十分之一的機(jī)器上,對100TB數(shù)據(jù)進(jìn)行排序的速度比Hadoop MapReduce快3倍。”這一成績讓Spark成為2014年Daytona GraySort基準(zhǔn)。

兼容性
MapReduce和Spark相互兼容;MapReduce通過JDBC和ODC兼容諸多數(shù)據(jù)源、文件格式和商業(yè)智能工具,Spark具有與MapReduce同樣的兼容性。

數(shù)據(jù)處理
MapReduce是一種批量處理引擎。MapReduce以順序步驟來操作,先從集群讀取數(shù)據(jù),然后對數(shù)據(jù)執(zhí)行操作,將結(jié)果寫回到集群,從集群讀 取更新后的數(shù)據(jù),執(zhí)行下一個數(shù)據(jù)操作,將那些結(jié)果寫回到結(jié)果,依次類推。Spark執(zhí)行類似的操作,不過是在內(nèi)存中一步執(zhí)行。它從集群讀取數(shù)據(jù)后,對數(shù)據(jù) 執(zhí)行操作,然后寫回到集群。

Spark還包括自己的圖形計(jì)算庫GraphX。GraphX讓用戶可以查看與圖形和集合同樣的數(shù)據(jù)。用戶還可以使用彈性分布式數(shù)據(jù)集(RDD),改變和聯(lián)合圖形,容錯部分作了討論。

容錯
至于容錯,MapReduce和Spark從兩個不同的方向來解決問題。MapReduce使用TaskTracker節(jié)點(diǎn),它為 JobTracker節(jié)點(diǎn)提供了心跳(heartbeat)。如果沒有心跳,那么JobTracker節(jié)點(diǎn)重新調(diào)度所有將執(zhí)行的操作和正在進(jìn)行的操作,交 給另一個TaskTracker節(jié)點(diǎn)。這種方法在提供容錯性方面很有效,可是會大大延長某些操作(即便只有一個故障)的完成時間。

Spark使用彈性分布式數(shù)據(jù)集(RDD),它們是容錯集合,里面的數(shù)據(jù)元素可執(zhí)行并行操作。RDD可以引用外部存儲系統(tǒng)中的數(shù)據(jù)集,比如共享式文件系統(tǒng)、HDFS、HBase,或者提供Hadoop InputFormat的任何數(shù)據(jù)源。Spark可以用Hadoop支持的任何存儲源創(chuàng)建RDD,包括本地文件系統(tǒng),或前面所列的其中一種文件系統(tǒng)。

RDD擁有五個主要屬性:

  • 分區(qū)列表

  • 計(jì)算每個分片的函數(shù)

  • 依賴其他RDD的項(xiàng)目列表

  • 面向鍵值RDD的分區(qū)程序(比如說RDD是散列分區(qū)),這是可選屬性

  • 計(jì)算每個分片的首選位置的列表(比如HDFS文件的數(shù)據(jù)塊位置),這是可選屬性


RDD可能具有持久性,以便將數(shù)據(jù)集緩存在內(nèi)存中。這樣一來,以后的操作大大加快,最多達(dá)10倍。Spark的緩存具有容錯性,原因在于如果RDD的任何分區(qū)丟失,就會使用原始轉(zhuǎn)換,自動重新計(jì)算。

可擴(kuò)展性

按照定義,MapReduce和Spark都可以使用HDFS來擴(kuò)展。那么,Hadoop集群能變得多大呢?

據(jù)稱雅虎有一套42000個節(jié)點(diǎn)組成的Hadoop集群,可以說擴(kuò)展無極限。最大的已知Spark集群是8000個節(jié)點(diǎn),不過隨著大數(shù)據(jù)增多,預(yù)計(jì)集群規(guī)模也會隨之變大,以便繼續(xù)滿足吞吐量方面的預(yù)期。
安全
Hadoop支持Kerberos身份驗(yàn)證,這管理起來有麻煩。然而,第三方廠商讓企業(yè)組織能夠充分利用活動目錄Kerberos和LDAP用于身份驗(yàn)證。同樣那些第三方廠商還為傳輸中數(shù)據(jù)和靜態(tài)數(shù)據(jù)提供數(shù)據(jù)加密。
Hadoop分布式文件系統(tǒng)支持訪問控制列表(ACL)和傳統(tǒng)的文件權(quán)限模式。Hadoop為任務(wù)提交中的用戶控制提供了服務(wù)級授權(quán)(Service Level Authorization),這確??蛻魮碛姓_的權(quán)限。
Spark的安全性弱一點(diǎn),目前只支持通過共享密鑰(密碼驗(yàn)證)的身份驗(yàn)證。Spark在安全方面帶來的好處是,如果你在HDFS上運(yùn)行Spark,它可以使用HDFS ACL和文件級權(quán)限。此外,Spark可以在YARN上運(yùn)行,因而能夠使用Kerberos身份驗(yàn)證。

“Hadoop與Spark哪個更好”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI