hadoop本身的計算模型決定了hadoop上所有的工作都要轉化成map、shuffer和Reduce等核心階段,由于每次計算都要從磁盤讀或者寫資料,同時整個計算模型都需要網絡傳輸,
這就導緻了越來越不能忍受的延遲性,同時在前一個任務未完成之前,後面的任務都要等待,這直接導緻其無力支援互動式應用。
spark具備的優勢:
快速
基于spark記憶體的計算速度比Hadoop MapReduce快100倍以上,基于磁盤的計算速度也快10倍以上。原因是spark有一個 dag有向無環圖執行引擎,支援循環資料流和記憶體計算。
易用
提供多語言api(包括scala、java、python),能夠快速實作應用,相比mapreducer有更簡潔的代碼。而且spark具備功能強大、齊全的rdd算子,可以輕松解決各種資料處理。
通用
提供了一個強大的技術棧,包括查詢語言spark sql 、機器學習工具Mllib、實時流工具 spark Streaming 、圖計算工具 graph,在同一個應該程式中可以無縫連接配接使用這些架構。
而hadoop的技術棧相對獨立也較為複雜。
內建hadoop
Spark可以運作在第二代hadoop叢集管理yarn上,這使得spark可以讀取hadoop任何資料。