大數據框架Hadoop PK Spark,贏家是……

全文共2601字,預計學習時長5分鐘算法

圖片來源:unsplash.com/@gferla

當下,數字宇宙正以飛快的速度追趕着物理宇宙,每兩年,全球數據量就會翻一番。據估計,到2020年,數字宇宙將達到44澤字節——其數字位的數量至關於宇宙中恆星的數量。編程

數據量隨時間的推移而增長

爲處理這些數據,市面上的分佈式系統也愈來愈多。在衆多系統中,Hadoop和Spark常常被視爲直接競爭對手進行比較。安全

在決定哪一個框架更合適時,能夠根據幾個基本的參數來比較。服務器

性能微信

Spark的速度很是快並優於Hadoop框架,內存運行速度快100倍,磁盤運行速度快10倍。此外,使用Spark小10倍的機器對100 TB數據進行排序時,其速度是Hadoop的3倍。框架

Hadoop vs Spark

Spark速度快是由於在內存中處理數據。Spark的內存處理能夠爲營銷活動、物聯網傳感器、機器學習和社交媒體網站提供數據實時分析。機器學習

然而,若是Spark與其它服務都在YARN上運行,Spark的性能就會降低,這會致使RAM內存不足。而Hadoop就能很好的解決這一問題,若是用戶想要批量處理,那麼Hadoop會比Spark高效得多。分佈式

注意:Hadoop和Spark有不一樣的處理方法。在Hadoop和Spark的性能對比中,到底是使用Hadoop仍是Spark,徹底取決於項目需求。函數

Facebook和Spark框架的過渡之旅工具

Facebook上的數據每分每秒都在增加,Facebook使用分析技術來處理和利用數據作決策,它利用瞭如下幾個平臺來實現這一目的:

1. 用於執行Facebook部分批量分析的Hive平臺

2. 用於Mapreduce自定義實施的Corona平臺

3. 基於ANSI-SQL查詢的Presto數據查詢引擎

從計算角度來看,上方所討論的Hive平臺屬於「資源密集型」,維護這一平臺頗具挑戰。所以,Facebook決定轉向Apache Spark來管理數據。當前,Facebook經過與Spark的整合爲實體排名系統部署了一個更快速的可管理通道。

使用Spark框架的Facebook

安全性

Spark的安全性仍在不斷髮展,當前其僅支持經過共享密碼(密碼身份驗證)覈實身份。Spache Spark的官網也聲明「Spark仍存在不一樣類型的安全問題,並不能保護全部的東西」。

另外一方面,Hadoop則具備如下安全特性:Hadoop身份驗證、受權、審計和加密。全部這些都與Knox Gateway和Sentry等的Hadoop安全項目相結合。

關鍵點:在Hadoop和Spark的安全對比中,Spark的安全性略遜於Hadoop。然而,將Hadoop與Spark結合,Spark就能夠具有Hadoop的安全特性。

成本

首先,Hadoop和Spark都是開源框架,所以二者都是免費的,都使用普通服務器,都在雲端運行,且彷佛有一些相似的硬件需求:

Hadoop vs.Spark specs

如何從成本角度進行評估呢?

請注意,Spark利用大量RAM來運行內存中的東西。RAM的價格高於硬盤,因此這可能會影響成本。

另外一方面,Hadoop綁定了硬盤,這就節省了購買RAM的成本。可是,Hadoop須要更多的系統來分配磁盤I/O。

所以,在比較Hadoop和Spark框架的成本參數時,機構必需要將需求歸入考慮。

若是需求傾向於處理大量大型的歷史數據,選擇Hadoop就是正確的,由於硬盤空間的價格要比內存空間的價格低得多。

另外一方面,若是要處理實時數據,Spark的性價比更高,由於Spark能夠利用更少的硬件以更快的速率執行相同的任務。

注意:在Hadoop和Spark的成本對比中,毋庸置疑,Hadoop的成本更低。但若是機構得處理少許實時數據時,Spark則更爲划算。

易操做性

Spark框架的一大USPs就是其易操做性,Spark爲Scala Java、Python、Spark SQL(又稱之爲Shark)提供了用戶友好溫馨型的API。

Spark的簡單構建模塊使得編寫用戶定義函數變得更爲輕易。此外,因爲Spark支持批量處理和機器學習,所以也易於簡化數據處理的基礎設施。Spark還包括一個用於運行即時反饋命令的交互模式。

Hadoop是用Java編寫的。在編寫無交互模式的程序時,Hadoop的難用是衆所周知的,因爲其給程序的編寫帶來了很大的困難。儘管Pig(一個附加工具)使得編程更爲容易,但卻須要花費時間來學習語法。

關鍵點:在Hadoop和Spark的易操做性對比中,二者都有自身的用戶友好方式。但若是必須兩者擇其一,Spark更易於編程又兼具交互模式。

Apache Hadoop和Spark有可能實現協同合做嗎?

圖片來源:unsplash.com/@starks73

咱們很是期盼這樣一種可能性,如今來詳細瞭解如何實現協同合做吧。

Apache Hadoop生態系統包括HDFS、Apache Query和HIVE,Apache是如何利用它們的呢?

Apache Spark和HDFS的合併

Apache Spark的目的是處理數據。但爲了處理數據,引擎須要從存儲中輸入數據,Spark利用HDFS來實現這一目的(這一選擇不是惟一的,可是最流行的,由於Apache是其背後的大腦)。

Apache HIVE和Apache Spark的混合

Apache HIVE和Apache Spark是高度兼容的,二者相結合能夠解決不少的業務問題。

例如,一個公司正在分析消費者行爲,須要從諸如社交媒體、評論、點擊流數據、客戶移動應用程序等各類來源收集數據。

企業能夠利用HDFS存儲數據,Apache HIVE做爲HDFS和Spark的橋樑。

Uber及其合併法

使用Hadoop和Spark的Uber

Uber結合Spark和Hadoop來處理消費者數據,使用實時交通情況提供處於特定地點和時間的司機。爲實現這一目標,Uber利用HDFS將原始數據上傳至HIVE,並利用Spark處理數十億個事件。

在Hadoop和Spark的對比中,贏家是......

儘管Spark速度快且易操做,但Hadoop是安全性高、存儲量大、低成本的批量處理。究竟選擇哪個徹底取決於項目需求,將二者結合起來則所向披靡。

將Spark和Hadoop的部分屬性結合起來,造成一個全新的框架:Spoop。算法的公平性也能夠量化?試試這三個指標吧

留言 點贊 關注

咱們一塊兒分享AI學習與發展的乾貨
歡迎關注全平臺AI垂類自媒體 「讀芯術」


(添加小編微信:dxsxbb,加入讀者圈,一塊兒討論最新鮮的人工智能科技哦~)

相關文章
相關標籤/搜索