大數據的兩個主要框架 Hadoop 和 Spark

Hadoop (MapReduce) :分佈式計算框架(批量處理計算框架)

Spark :內存計算框架(實時計算框架,內存計算框架,流式計算框架)

 

      Spark是通用分佈式數據處理引擎,適用於多種情況。在Spark核心數據處理引擎之上,還有用於SQL,機器學習,圖形計算和流處理的庫,它們可以在應用程序中一起使用。 Spark支持的編程語言包括:Java,Python,Scala和R。應用程序開發人員和數據科學家將Spark集成到其應用程序中,以快速地大規模查詢,分析和轉換數據。與Spark最頻繁相關的任務包括跨大型數據集的ETL和SQL批處理作業,來自傳感器,物聯網或金融系統的流數據處理以及機器學習任務。 Spark可以作爲獨立應用程序運行,也可以在Hadoop YARN之上運行.

Spark和MapReduce之間的區別
Apache Spark和Hadoop MapReduce之間的主要區別是:
1.性能:當所有數據都適合內存時,尤其是在專用集羣上,Spark的性能會更好。 Hadoop MapReduce專爲無法容納在內存中的數據而設計,並且可以與其他服務一起良好運行。


2.使用方便性:Spark易於編程,幷包含交互模式。 Hadoop MapReduce編程難度更大,但是有幾種工具可以簡化它。


3.數據處理:Spark是數據處理的瑞士軍刀,而Hadoop MapReduce是批處理的突擊隊刀。


4.安全:與具有更多安全功能和項目的MapReduce相比,Spark安全性尚不完善。

但是,Spark和MapReduce之間也有一些相似之處-不足爲奇,因爲Spark使用MapReduce作爲其基礎。 Spark和MapReduce之間的相似點包括:
1,成本:Spark更具成本效益,儘管人員配備成本可能更高。 Hadoop MapReduce可能會更便宜,因爲可以提供更多的人員,而且對於海量數據量來說可能更便宜


2,兼容性:Spark與各種數據類型和數據源的兼容性與Hadoop MapReduce相同


3,容錯能力:Spark和Hadoop MapReduce都具有良好的容錯能力,但是Hadoop MapReduce的容錯性稍強。
     

 憑藉其內存中數據處理功能,Spark具有出色的性能並且具有很高的成本效益。它與Hadoop的所有數據源和文件格式兼容,並且學習曲線更快,並且具有適用於多種編程語言的友好API。 Spark甚至包括圖形處理和機器學習功能。

     Hadoop MapReduce是一個更成熟的平臺,它是專門爲批處理而構建的。對於無法容納在內存中的超大數據,MapReduce可能比Spark更具成本效益,而且找到具有MapReduce經驗的員工可能更容易。此外,由於許多支持項目,工具和雲服務,MapReduce生態系統目前更大。

    但是,即使您認爲Spark在這裏看起來像贏家,也有可能您不會自己使用它。您仍然需要HDFS來存儲數據,並且可能要使用HBase,Hive,Pig,Impala或其他Hadoop項目。這意味着您仍然需要與Spark一起運行Hadoop和MapReduce,以獲取完整的大數據包。

 

 

參考:

https://www.xplenty.com/blog/apache-spark-vs-hadoop-mapreduce/

https://intellipaat.com/blog/what-is-apache-spark/

https://mapr.com/blog/spark-101-what-it-what-it-does-and-why-it-matters/

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章