全文共2601字,預計學習時長5分鐘算法
當下,數字宇宙正以飛快的速度追趕着物理宇宙,每兩年,全球數據量就會翻一番。據估計,到2020年,數字宇宙將達到44澤字節——其數字位的數量至關於宇宙中恆星的數量。編程
爲處理這些數據,市面上的分佈式系統也愈來愈多。在衆多系統中,Hadoop和Spark常常被視爲直接競爭對手進行比較。安全
在決定哪一個框架更合適時,能夠根據幾個基本的參數來比較。服務器
性能微信
Spark的速度很是快並優於Hadoop框架,內存運行速度快100倍,磁盤運行速度快10倍。此外,使用Spark小10倍的機器對100 TB數據進行排序時,其速度是Hadoop的3倍。框架
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的安全性仍在不斷髮展,當前其僅支持經過共享密碼(密碼身份驗證)覈實身份。Spache Spark的官網也聲明「Spark仍存在不一樣類型的安全問題,並不能保護全部的東西」。
另外一方面,Hadoop則具備如下安全特性:Hadoop身份驗證、受權、審計和加密。全部這些都與Knox Gateway和Sentry等的Hadoop安全項目相結合。
關鍵點:在Hadoop和Spark的安全對比中,Spark的安全性略遜於Hadoop。然而,將Hadoop與Spark結合,Spark就能夠具有Hadoop的安全特性。
成本
首先,Hadoop和Spark都是開源框架,所以二者都是免費的,都使用普通服務器,都在雲端運行,且彷佛有一些相似的硬件需求:
如何從成本角度進行評估呢?
請注意,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有可能實現協同合做嗎?
咱們很是期盼這樣一種可能性,如今來詳細瞭解如何實現協同合做吧。
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及其合併法
Uber結合Spark和Hadoop來處理消費者數據,使用實時交通情況提供處於特定地點和時間的司機。爲實現這一目標,Uber利用HDFS將原始數據上傳至HIVE,並利用Spark處理數十億個事件。
在Hadoop和Spark的對比中,贏家是......
儘管Spark速度快且易操做,但Hadoop是安全性高、存儲量大、低成本的批量處理。究竟選擇哪個徹底取決於項目需求,將二者結合起來則所向披靡。
將Spark和Hadoop的部分屬性結合起來,造成一個全新的框架:Spoop。
留言 點贊 關注
咱們一塊兒分享AI學習與發展的乾貨
歡迎關注全平臺AI垂類自媒體 「讀芯術」
(添加小編微信:dxsxbb,加入讀者圈,一塊兒討論最新鮮的人工智能科技哦~)