壹、基礎知識
1、Spark
Spark是壹個用來實現快速而通用的集群計算的平臺。
在速度方面,Spark擴展了廣泛使用的MapReduce計算模型,而且高效地支持更多計算模式,包括交互式查詢和流處理。
Spark項目包含多個緊密集成的組件。Spark的核心是壹個對由很多計算任務組成的、運行在多個工作機器或者是壹個計算集群上的應用進行調度、分發以及監控的計算引擎。
2、Hadoop
Hadoop是壹個由Apache基金會所開發的分布式系統基礎架構。
用戶可以在不了解分布式底層細節的情況下,開發分布式程序。充分利用集群的威力進行高速運算和存儲。
Hadoop的框架最核心的設計就是:HDFS和MapReduce。HDFS為海量的數據提供了存儲,則MapReduce為海量的數據提供了計算。
很多初學者,對大數據的概念都是模糊不清的,大數據是什麽,能做什麽,學的時候,該按照什麽線路去學習,學完往哪方面發展,想深入了解,想學習的同學歡迎加入大數據學習扣扣群:740041381,有大量幹貨(零基礎以及進階的經典實戰)分享給大家,並且有清華大學畢業的資深大數據講師給大家免費授課,給大家分享目前國內最完整的大數據高端實戰實用學習流程體系。
二、大數據處理選擇
Spark和Hadoop都可以進行大數據處理,那如何選擇處理平臺呢?
1.處理速度和性能
Spark擴展了廣泛使用的MapReduce計算模型,支持循環數據流和內存計算。
Hadoop進行計算時,需要從磁盤讀或者寫數據,同時整個計算模型需要網絡傳輸,導致MapReduce具有高延遲的弱點。
據統計,基於Spark內存的計算速度比Hadoop MapReduce快100倍以上,基於磁盤的計算速度也要快10倍以上。
2.開發難易度
Spark提供多語言(包括Scala、Java、Python)API,能夠快速實現應用,相比MapReduce更簡潔的代碼,安裝部署也無需復雜配置。使用API可以輕松地構建分布式應用,同時也可以使用Scala和Python腳本進行交互式編程。