Hadoop與 Spark - 選擇正確的大數(shù)據(jù)框架
我們被各方的數(shù)據(jù)所包圍。隨著數(shù)據(jù)每兩年增加一倍,數(shù)字世界正在快速追逐物理世界。據(jù)估計,到2020年,數(shù)字宇宙將達(dá)到44個zettabytes - 與宇宙中的恒星一樣多的數(shù)字位。

數(shù)據(jù)正在增加,我們不會很快擺脫它。為了消化所有這些數(shù)據(jù),市場上有越來越多的分布式系統(tǒng)。在這些系統(tǒng)中,Hadoop和Spark經(jīng)常作為直接競爭對手相互競爭。
在決定這兩個框架中哪一個適合您時,根據(jù)幾個基本參數(shù)對它們進(jìn)行比較非常重要。
性能
Spark非常閃電,并且發(fā)現(xiàn)它的性能優(yōu)于Hadoop框架。它在內(nèi)存中的運行速度提高了100倍,在磁盤上運行速度提高了 10倍。此外,我們發(fā)現(xiàn),它使用10倍的機器,比使用Hadoop快3倍的數(shù)據(jù)排序100 TB。

Spark是如此之快,因為它處理內(nèi)存中的所有內(nèi)容。得益于Spark的內(nèi)存處理,它可以為來自營銷活動,物聯(lián)網(wǎng)傳感器,機器學(xué)習(xí)和社交媒體網(wǎng)站的數(shù)據(jù)提供實時分析。
但是,如果Spark和其他共享服務(wù)在YARN上運行,則其性能可能會降低。這可能導(dǎo)致RAM開銷內(nèi)存泄漏。另一方面,Hadoop輕松處理這個問題。如果用戶傾向于批量處理,Hadoop比Spark更有效。
Hadoop和Spark都有不同的處理方式。因此,它完全取決于項目的需求,是否在Hadoop和Spark性能戰(zhàn)中繼續(xù)使用Hadoop或Spark。
Facebook及其與Spark框架的過渡之旅
Facebook上的數(shù)據(jù)每過一秒就會增加。為了處理這些數(shù)據(jù)并使用它來做出明智的決定,F(xiàn)acebook使用分析。為此,它使用了許多平臺,如下所示:
- Hive平臺執(zhí)行Facebook的一些批量分析。
- 用于自定義MapReduce實現(xiàn)的Corona平臺。
- 基于ANSI-SQL的查詢的Presto足跡。
上面討論的Hive平臺在計算上是“資源密集型的”。所以,維持這是一個巨大的挑戰(zhàn)。因此,F(xiàn)acebook決定切換到Apache Spark框架來管理他們的數(shù)據(jù)。今天,F(xiàn)acebook已經(jīng)通過集成Spark為實體排名系統(tǒng)部署了一條更快的可管理管道。

安全
Spark的安全性仍在不斷發(fā)展,因為它目前只支持通過共享密鑰進(jìn)行身份驗證(密碼身份驗證)。甚至Apache Spark的官方網(wǎng)站聲稱,“存在許多不同類型的安全問題。Spark并不一定能防范所有事情。“
另一方面,Hadoop具有以下安全功能:Hadoop身份驗證,Hadoop授權(quán),Hadoop審計和Hadoop加密。所有這些都與Knox Gateway和Sentry等Hadoop安全項目集成在一起。
一句話:在Hadoop vs Spark Security的戰(zhàn)斗中,Spark比Hadoop安全一點。但是,在將Spark與Hadoop集成時,Spark可以使用Hadoop的安全功能。
成本
首先,Hadoop和Spark都是開源框架,因此免費提供。兩者都使用商用服務(wù)器,在云上運行,似乎有一些類似的硬件要求:

那么,如何根據(jù)成本對它們進(jìn)行評估呢?
請注意,Spark利用大量RAM來運行內(nèi)存中的所有內(nèi)容。鑒于RAM的價格高于硬盤,這可能會影響成本。
另一方面,Hadoop受磁盤限制。因此,您購買昂貴RAM的成本得以節(jié)省。但是,Hadoop需要更多系統(tǒng)來分發(fā)磁盤I / O.
因此,在比較Spark和Hadoop框架的成本參數(shù)時,組織將不得不考慮他們的要求。
如果需求傾向于處理大量的大型歷史數(shù)據(jù),Hadoop是繼續(xù)選擇的選擇,因為硬盤空間的價格遠(yuǎn)低于內(nèi)存空間。
另一方面,當(dāng)我們處理實時數(shù)據(jù)選項時,Spark可以具有成本效益,因為它使用較少的硬件以更快的速度執(zhí)行相同的任務(wù)。
結(jié)論:在Hadoop與Spark成本之爭中,Hadoop肯定會降低成本,但當(dāng)組織必須處理較少量的實時數(shù)據(jù)時,Spark才具有成本效益。
便于使用
Spark框架的最大USP之一是其易用性。Spark為Scala Java,Python和Spark SQL(也稱為Shark)提供了用戶友好且舒適的API。
Spark的簡單構(gòu)建塊使編寫用戶定義的函數(shù)變得容易。此外,由于Spark允許批處理和機器學(xué)習(xí),因此簡化數(shù)據(jù)處理的基礎(chǔ)設(shè)施變得容易。它甚至包括一個交互模式,用于運行具有即時反饋的命令。
Hadoop是用Java編寫的,并且在為沒有交互模式編寫程序的困難鋪平道路方面聲名狼借。雖然Pig(附加工具)使編程更容易,但是需要一些時間來學(xué)習(xí)語法。
結(jié)論:在'易用性'Hadoop vs Spark之戰(zhàn)中,他們都有自己的方式讓自己對用戶友好。但是,如果我們必須選擇一個,Spark更容易編程并包含交互模式。
Apache Hadoop和Spark有可能建立協(xié)同關(guān)系嗎?
是的,這是非??赡艿?,我們推薦它。讓我們深入了解它們?nèi)绾螀f(xié)同工作。
Apache Hadoop生態(tài)系統(tǒng)包括HDFS,Apache Query和HIVE。讓我們看看Apache Spark如何利用它們。
Apache Spark和HDFS的融合
Apache Spark的目的是處理數(shù)據(jù)。但是,為了處理數(shù)據(jù),引擎需要從存儲器輸入數(shù)據(jù)。為此,Spark使用HDFS。(這不是唯一的選擇,但是最受歡迎的選擇,因為Apache是兩者背后的大腦)。
Apache Hive和Apache Spark的混合體
Apache Spark和Apache Hive高度兼容,它們可以解決許多業(yè)務(wù)問題。
例如,假設(shè)企業(yè)正在分析消費者行為。現(xiàn)在,為此,該公司將需要從各種來源收集數(shù)據(jù),如社交媒體,評論,點擊流數(shù)據(jù),客戶移動應(yīng)用程序等等。
組織可以利用HDFS存儲數(shù)據(jù),Apache hive作為HDFS和Spark之間的橋梁。
優(yōu)步及其合并方法

優(yōu)步使用Spark和Hadoop
為了處理消費者數(shù)據(jù),優(yōu)步使用了Spark和Hadoop的組合。它使用實時交通情況在特定時間和地點提供駕駛員。為了實現(xiàn)這一目標(biāo),優(yōu)步使用HDFS將原始數(shù)據(jù)上傳到Hive和Spark,以處理數(shù)十億個事件。
雖然Spark快速且易于使用,但Hadoop具有強大的安全性,龐大的存儲容量和低成本的批處理功能。選擇一個中的一個完全取決于您的項目的要求。兩者的結(jié)合將產(chǎn)生一種無敵的組合。
混合Spark的一些屬性和一些Hadoop來提出一個全新的框架:Spoop。