生產(chǎn)環(huán)境選型考慮:Spark 全方位對比 Hadoop MapReduce_第1頁
生產(chǎn)環(huán)境選型考慮:Spark 全方位對比 Hadoop MapReduce_第2頁
生產(chǎn)環(huán)境選型考慮:Spark 全方位對比 Hadoop MapReduce_第3頁
生產(chǎn)環(huán)境選型考慮:Spark 全方位對比 Hadoop MapReduce_第4頁
生產(chǎn)環(huán)境選型考慮:Spark 全方位對比 Hadoop MapReduce_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、Apache Spark 與 Hadoop MapReduce 的五個主要區(qū)別:1、Apache Spark 可能比 Hadoop MapReduce 快 100 倍。2、Apache Spark使用內(nèi)存,并且不依賴于Hadoop的兩階段范式。3、Apache Spark適用于可以全部放入服務(wù)器內(nèi)存的較小數(shù)據(jù)集。4、Hadoop處理海量數(shù)據(jù)集更具成本效益。5、Apache Spark 現(xiàn)在比 Hadoop MapReduce 更受歡迎。多年來,Hadoop 一直是大數(shù)據(jù)無可爭議的首選 直到Spark出現(xiàn)。自2014年首次發(fā)布以來,Apache Spark 一直在點燃大 數(shù)據(jù)世界。憑借Spark

2、便捷的API和承諾的速度比Hadoop MapReduce快100倍,一些分析人士認(rèn)為,Spark標(biāo)志著大數(shù)據(jù) 新時代的到來。Spark是一個開源數(shù)據(jù)處理框架,如何能夠如此快速地處理所有這些信息?秘訣在于Spark在集群上運行在內(nèi)存中,它不依賴 于Hadoop的MapReduce兩階段范式。這使得重復(fù)訪問相同數(shù)據(jù)的速度更快。Spark可以作為獨立應(yīng)用程序運行,也可以在 Hadoop YARN之上運行,它可以直接從HDFS讀取數(shù)據(jù)。雅虎、英特爾、百度、Yelp和Zillow等數(shù)十家主要科技公司已經(jīng) 將Spark作為其技術(shù)堆棧的一部分。雖然Spark似乎注定要取代Hadoop MapReduce,

3、但您現(xiàn)在還不應(yīng)該指望MapReduce。在這篇文章中,我們將比較這兩個平臺, 看看Spark是否真的非常有優(yōu)勢。什么是 Apache Spark?Apache Spark是“用于大規(guī)模數(shù)據(jù)處理的統(tǒng)一分析引擎”。Spark由非營利性的Apache Software Foundation維護,該基金會 已經(jīng)發(fā)布了數(shù)百個開源軟件項目。自項目啟動以來,已有1200多名開發(fā)人員為Spark做出了貢獻。Spark最初是在加州大學(xué)伯克利分校的AMPLab開發(fā)的,于2010年首次作為開源項目發(fā)布。Spark使用Hadoop MapReduce 分布式計算框架作為其基礎(chǔ)。Spark旨在改進MapReduce項目

4、的幾個方面,例如性能和易用性,同時保留MapReduce的許 多優(yōu)點。Spark包括一個核心數(shù)據(jù)處理引擎,以及用于SQL、機器學(xué)習(xí)和流處理的庫。憑借適用于Java、Scala、Python和R的API, Spark在開發(fā)人員中享有廣泛的吸引力一一為其贏得了大數(shù)據(jù)處理領(lǐng)域“瑞士軍刀”的美譽。什么是 Hadoop MapReduce?Hadoop MapReduce將自己描述為“一個用于輕松編寫應(yīng)用程序的軟件框架,該應(yīng)用程序以可靠、容錯的方式在大型商用硬件集 群(數(shù)千個節(jié)點)上并行處理大量數(shù)據(jù)(多TB數(shù)據(jù)集)?!盡apReduce范式由兩個順序任務(wù)組成:Map和Reduce(因此得名)。Map過濾

5、和排序數(shù)據(jù),同時將其轉(zhuǎn)換為鍵值對。然后, Reduce接受此輸入并通過對數(shù)據(jù)集執(zhí)行某種匯總操作來減小其大小。MapReduce可以通過分解大型數(shù)據(jù)集并并行處理它們來極大地加速大數(shù)據(jù)任務(wù)。MapReduce范式由Google員工Jeff Dean 和Sanjay Ghemawat于2004年首次提出;后來它被整合到Apache的Hadoop框架中以進行分布式處理。Spark 和 MapReduce 的區(qū)別Apache Spark和 Hadoop MapReduce之間的主要區(qū)別是:性能易于使用數(shù)據(jù)處理安全然而,Spark和MapReduce之間也有一些相似之處這并不奇怪,因為Spark使用Map

6、Reduce作為其基礎(chǔ)。Spark和MapReduce的相似點包括:成本兼容性容錯下面,我們將在每個部分詳細(xì)介紹Spark和MapReduce之間的差異(以及相似之處)。Spark VS MapReduce:性能Apache Spark在隨機存取存儲器(RAM)中處理數(shù)據(jù),而Hadoop MapReduce在執(zhí)行映射或歸約操作后將數(shù)據(jù)持久化回磁盤。 那么理論上,Spark的性能應(yīng)該優(yōu)于Hadoop MapReduce。盡管如此,Spark需要大量內(nèi)存。與標(biāo)準(zhǔn)數(shù)據(jù)庫非常相似,Spark將 進程加載到內(nèi)存中并保留在那里,直到進一步通知以進行緩存。如果您在Hadoop YARN上運行Spark和其他

7、需要資源的服務(wù), 或者如果數(shù)據(jù)太大而無法完全放入內(nèi)存,那么Spark可能會遭受嚴(yán)重的性能下降。MapReduce會在作業(yè)完成后立即終止其進程,因此它可以輕松地與性能差異很小的其他服務(wù)一起運行。對于需要多次傳遞相同數(shù)據(jù)的迭代計算,Spark具有優(yōu)勢。但是,當(dāng)涉及到類似ETL的一次性作業(yè)時一一例如,數(shù)據(jù)轉(zhuǎn)換或數(shù) 據(jù)集成一一這正是MapReduce的設(shè)計目的。小結(jié):當(dāng)所有數(shù)據(jù)都適合內(nèi)存時,Spark性能更好,尤其是在專用集群上。Hadoop MapReduce專為無法放入內(nèi)存的數(shù)據(jù)而設(shè) 計,并且可以與其他服務(wù)一起很好地運行。Spark VS Hadoop MapReduce:易用性Spark為Jav

8、a、Scala和Python提供了預(yù)構(gòu)建的API,還包括用于SQL的Spark SQL (以前稱為Shark)。由于Spark的簡 單構(gòu)建塊,編寫用戶定義的函數(shù)很容易。Spark甚至包括用于運行命令并立即反饋的交互模式。MapReduce是用Java編寫的,并且非常難以編程。Apache Pig讓它變得更容易(盡管它需要一些時間來學(xué)習(xí)語法),而Apache Hive則增加了 SQL兼容性。一些Hadoop工具也可以在沒有任何編程的情況下運行MapReduce作業(yè)。此外,雖然Hive包含命令行界面,但MapReduce沒有交互模式。Apache Impala和Apache Tez等項目希望將完整

9、的交互式 查詢引入Hadoop。在安裝和維護方面,Spark 不受 Hadoop 的約束。Spark 和 Hadoop MapReduce 都包含在 Hortonworks (HDP 3.1)和 Cloudera (CDH 5.13)的發(fā)行版中。小結(jié):Spark更易于編程,并且包含交互模式。Hadoop MapReduce更難編程,但有幾個工具可以使它更容易。Spark VS Hadoop MapReduce:成本Spark和MapReduce是開源解決方案,但您仍然需要在機器和人員上花錢。Spark和MapReduce都可以使用商品服務(wù)器并在 云上運行。此外,這兩種工具都有相似的硬件要求:S

10、park集群中的內(nèi)存至少應(yīng)該與您需要處理的數(shù)據(jù)量一樣大,因為數(shù)據(jù)必須適合內(nèi)存才能獲得最佳性能。如果您需要處理大量數(shù) 據(jù),Hadoop肯定是更便宜的選擇,因為硬盤空間比內(nèi)存空間便宜得多。另一方面,考慮到Spark和MapReduce的性能,Spark應(yīng)該更劃算。Spark需要更少的硬件來更快地執(zhí)行相同的任務(wù),尤其 是在計算能力按使用付費的云服務(wù)器上。人員配備問題呢?盡管Hadoop自2005年就已經(jīng)存在,但市場上仍然缺乏MapReduce專家。根據(jù)Gartner的一份研究報告, 57%的使用Hadoop的組織表示“獲得必要的技能和能力”是他們最大的Hadoop挑戰(zhàn)。那么這對于自2010年才出現(xiàn)的

11、Spark來說意味著什么呢?雖然它可能有更快的學(xué)習(xí)曲線,但Spark也缺乏合格的專家。好消 息是,有大量Hadoop即服務(wù)產(chǎn)品和基于Hadoop的服務(wù)(如Integrate.io自己的數(shù)據(jù)集成服務(wù)),這有助于緩解這些硬件和 人員配備要求。同時,Spark即服務(wù)選項可通過Amazon Web Services等提供商獲得。小結(jié):根據(jù)基準(zhǔn),Spark更具成本效益,但人員配備成本可能更高。Hadoop MapReduce可能會更便宜,因為可用的人員更多, 而且對于海量數(shù)據(jù)量來說可能更便宜。Spark VS Hadoop MapReduce:兼容性Apache Spark可以作為獨立應(yīng)用程序在Hado

12、op YARN或Apache Mesos內(nèi)部部署或云中運行。Spark支持實現(xiàn)Hadoop輸入 格式的數(shù)據(jù)源,因此它可以與Hadoop支持的所有相同數(shù)據(jù)源和文件格式集成。Spark還通過JDBC和ODBC與商業(yè)智能工具一起工作。底線:Spark對各種數(shù)據(jù)類型和數(shù)據(jù)源的兼容性與Hadoop MapReduce相同。Spark vs Hadoop MapReduce:數(shù)據(jù)處理Spark可以做的不僅僅是簡單的數(shù)據(jù)處理:它還可以處理圖形,它包括MLlib機器學(xué)習(xí)庫。由于其高性能,Spark可以進行實 時處理和批處理。Spark提供了一個“一刀切”的平臺供您使用,而不是在不同的平臺上拆分任務(wù),這會增加您

13、的IT復(fù)雜性。Hadoop MapReduce非常適合批處理。如果你想要一個實時選項,你需要使用另一個平臺,比如Impala或Apache Storm,而對 于圖形處理,你可以使用Apache Giraph。MapReduce曾經(jīng)有Apache Mahout用于機器學(xué)習(xí),但后來被Spark和H2O拋棄 了。小結(jié):Spark是數(shù)據(jù)處理的瑞士軍刀,而Hadoop MapReduce是批處理的突擊刀。Spark vs Hadoop MapReduce:容錯Spark具有每個任務(wù)的重試和推測執(zhí)行,就像MapReduce 一樣。盡管如此,MapReduce在這里有一點優(yōu)勢,因為它依賴于硬 盤驅(qū)動器,而不

14、是RAM。如果MapReduce進程在執(zhí)行過程中崩潰,它可以從中斷的地方繼續(xù),而Spark必須從頭開始處理。小結(jié):Spark和Hadoop MapReduce都具有良好的容錯性,但Hadoop MapReduce的容錯性稍強一些。Spark VS Hadoop MapReduce:安全性在安全性方面,與MapReduce相比,Spark沒有那么先進。事實上,Spark中的安全性默認(rèn)設(shè)置為“關(guān)閉”,這會使您容易受 到攻擊。RPC通道支持通過共享密鑰在Spark中進行身份驗證。Spark將事件日志記錄作為一項功能,并且可以通過javax servlet過濾器保護 Web UI。此外,由于Spark

15、可以運行在YARN上并使用HDFS,因此還可以享受Kerberos身份驗證、 HDFS文件權(quán)限以及節(jié)點之間的加密。Hadoop MapReduce可以享受所有Hadoop安全優(yōu)勢并與Hadoop安全項目集成,例如Knox Gateway和 Apache Sentry。旨在 提高Hadoop安全性的Project Rhino僅在添加Sentry支持方面提到了 Spark。否則,Spark開發(fā)人員將不得不自己提高Spark 的安全性。小結(jié):與具有更多安全功能和項目的MapReduce相比,Spark安全性仍然欠發(fā)達。Spark的常用場景雖然兩者都是大規(guī)模數(shù)據(jù)處理的強大選項,但某些情況下,其中一種比

16、另一種更理想。流數(shù)據(jù)處理隨著公司走向數(shù)字化轉(zhuǎn)型,他們正在尋找實時分析數(shù)據(jù)的方法。Spark的內(nèi)存數(shù)據(jù)處理使其成為處理流數(shù)據(jù)的理想選擇。Spark Streaming是Spark的一個變體,它使這個用例成為可能。那么,公司可以通過哪些方式利用Spark Streaming?流式ETL -在傳統(tǒng)的ETL過程中,數(shù)據(jù)被讀取、轉(zhuǎn)換為兼容格式并保存到目標(biāo)數(shù)據(jù)存儲中。使用Streaming ETL的過程效 率更高,因為數(shù)據(jù)在保存到目標(biāo)數(shù)據(jù)存儲之前會在內(nèi)存中不斷清理和聚合。數(shù)據(jù)豐富一一公司在嘗試適應(yīng)和提供更增強的客戶體驗時處于不斷變化的狀態(tài)。通過將實時數(shù)據(jù)與靜態(tài)數(shù)據(jù)相結(jié)合,公司可以 構(gòu)建更可靠的客戶畫像,從

17、而為他們提供個性化體驗。觸發(fā)事件檢測一一實時響應(yīng)事件的能力是一項重要的業(yè)務(wù)能力,有助于提高敏捷性和適應(yīng)變化的能力。借助Spark Streaming, 公司可以實時分析數(shù)據(jù),以識別需要立即關(guān)注的異?;顒?。機器學(xué)習(xí)在預(yù)測分析方面,Spark的機器學(xué)習(xí)庫(MLib)提供了一套強大的工具,可以輕松完成它。當(dāng)用戶對一組數(shù)據(jù)進行重復(fù)查詢時, 他們本質(zhì)上是在構(gòu)建類似于機器學(xué)習(xí)的算法。例如,機器學(xué)習(xí)可以幫助公司出于營銷目的進行客戶細(xì)分。它還可以幫助執(zhí)行情 緒分析。交互式查詢想象一下能夠?qū)崟r數(shù)據(jù)執(zhí)行交互式查詢。從本質(zhì)上講,您可以分析大型數(shù)據(jù)集,而無需依賴外部數(shù)據(jù)存儲來處理信息。使用 Spark Stream

18、ing,您可以查詢數(shù)據(jù)流,而無需將其持久化到外部數(shù)據(jù)庫。MapReduce的常用場景當(dāng)處理對于內(nèi)存中操作來說太大的數(shù)據(jù)時,MapReduce是要走的路。因此,MapReduce最適合處理大型數(shù)據(jù)集。處理大型數(shù)據(jù)集(PB或TB)考慮到實施和維護所需的時間和費用,千兆字節(jié)大小不足以證明MapReduce的合理性。希望管理PB或TB數(shù)據(jù)的組織是 MapReduce的理想選擇。以不同格式存儲數(shù)據(jù)公司可以使用MapReduce處理多種文件類型,例如文本、圖像、純文本等。由于這些文件對于內(nèi)存中的處理來說太大了,使用 MapReduce進行批處理更經(jīng)濟。數(shù)據(jù)處理MapReduce具有對大型數(shù)據(jù)集執(zhí)行基本和復(fù)

19、雜分析的強大功能。通過使用基于磁盤的存儲而不是內(nèi)存中的處理,對大型數(shù)據(jù)集 進行匯總、過濾和連接等任務(wù)的效率要高得多。Spark 與 Hadoop MapReduce 趨勢隨著公司尋找在擁擠的市場中保持競爭力的新方法,他們將需要適應(yīng)即將到來的數(shù)據(jù)管理趨勢。這些趨勢包括:XOps -使用DevOps的最佳實踐,XOps的目標(biāo)是在數(shù)據(jù)管理過程中實現(xiàn)可靠性、可重用性和可重復(fù)性。Data Fabric -作為一個架構(gòu)框架,Data Fabric的目標(biāo)是在一個無縫的數(shù)據(jù)管理平臺中結(jié)合多種類型的數(shù)據(jù)存儲、分析、處理 和安全性數(shù)據(jù)分析作為核心業(yè)務(wù)功能-傳統(tǒng)上,數(shù)據(jù)管理由一個單獨的團隊處理,該團隊分析數(shù)據(jù)并將其提供給關(guān)鍵業(yè)務(wù)領(lǐng)導(dǎo)者。然 而,一種新方法將這些數(shù)據(jù)直接交到組織領(lǐng)導(dǎo)者手中,這樣他們就可以立即訪問這些信息以進行決策。結(jié)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論