大數(shù)據(jù)處理為何選擇Spark,而不是Hadoop

責任編輯:editor005

2018-01-22 13:46:01

摘自:網(wǎng)絡大數(shù)據(jù)

Spark是一個用來實現(xiàn)快速而通用的集群計算的平臺。在速度方面,Spark擴展了廣泛使用的MapReduce計算模型,而且高效地支持更多計算模式,包括交互式查詢和流處理。

Spark是一個用來實現(xiàn)快速而通用的集群計算的平臺。在速度方面,Spark擴展了廣泛使用的MapReduce計算模型,而且高效地支持更多計算模式,包括交互式查詢和流處理。

一.基礎知識

1.Spark

Spark是一個用來實現(xiàn)快速而通用的集群計算的平臺。

在速度方面,Spark擴展了廣泛使用的MapReduce計算模型,而且高效地支持更多計算模式,包括交互式查詢和流處理。

Spark項目包含多個緊密集成的組件。Spark的核心是一個對由很多計算任務組成的、運行在多個工作機器或者是一個計算集群上的應用進行調(diào)度、分發(fā)以及監(jiān)控的計算引擎。

大數(shù)據(jù)

  Spark的各個組件

2.hadoop

Hadoop是一個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎架構。

用戶可以在不了解分布式底層細節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力進行高速運算和存儲。

Hadoop的框架最核心的設計就是:HDFS和MapReduce。HDFS為海量的數(shù)據(jù)提供了存儲,則MapReduce為海量的數(shù)據(jù)提供了計算。

二.大數(shù)據(jù)處理選擇

根據(jù)Spark和Hadoop的基礎知識,我們了解Spark和Hadoop都 可以進行大數(shù)據(jù)處理,那我們?nèi)绾芜x擇處理平臺呢?

1.處理速度和性能

Spark擴展了廣泛使用的MapReduce計算模型,其中Spark有個Directed Acyclic Graph(DAG有向無環(huán)圖)執(zhí)行引擎,支持循環(huán)數(shù)據(jù)流和內(nèi)存計算。

Hadoop是磁盤級計算,進行計算時,都需要從磁盤讀或者寫數(shù)據(jù),同時整個計算模型需要網(wǎng)絡傳輸,導致MapReduce具有高延遲的致命弱點。

據(jù)統(tǒng)計,基于Spark內(nèi)存的計算速度比Hadoop MapReduce快100倍以上,基于磁盤的計算速度也要快10倍以上。

2.開發(fā)難易度

Spark提供多語言(包括Scala、Java、Python)API,能夠快速實現(xiàn)應用,相比MapReduce更簡潔的代碼,安裝部署也無需復雜配置。使用API可以輕松地構建分布式應用,同時也可以使用Scala和Python腳本進行交互式編程。

3.兼容性

Spark提供了一個強大的技術棧,基于”One Stack to rule them all”的理念實現(xiàn)一體化、多元化的大數(shù)據(jù)處理平臺,輕松應對大數(shù)據(jù)處理的查詢語言Spark SQL、機器學習工具MLlib、圖計算工具GraphX、實時流處理工具Spark Streaming無縫連接。

Hadoop的技術棧則相對獨立復雜,各個框架都是獨立的系統(tǒng),給集成帶來了很大的復雜和不確定性。

4.相互集成性

Spark可以運行在Hadoop集群管理Yarn上,這使得Spark可以讀取Hadoop的任何數(shù)據(jù)。同時它也能讀取HDFS、HBase、Hive、Cassandra以及任何Hadoop數(shù)據(jù)源。

鏈接已復制,快去分享吧

企業(yè)網(wǎng)版權所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號