1、中間結果輸出
基於mr的計算引擎通常會將中間結果輸出到磁碟上,進行儲存和容錯。處於任務管道承接的考慮,當一些查詢翻譯到mr任務時,旺旺會產生多個stage,而這些串聯的stage又依賴於底層檔案系統(如hdfs)來儲存每乙個stage的輸出結果。
spark將執行模型抽象為通用的有向無環圖,dag計畫 著可以將多個stage的任務串聯或者並行執行,而無需將stage中間結果輸出到hdfs上面,類似的引起包括dryad tez
1、資料格式和記憶體布局
由於mr schema on read處理方式會引起較大的處理開銷。spark抽象出分布式記憶體儲存結構彈性分布式資料集rdd, 進行資料的儲存。rdd能支援粗粒度寫操作。但對於讀取操作。rdd可以精確到每條幾率,這使得rdd可以用來作為分布式索引,spark的特性是能夠控制資料在不同節點上的分割槽,使用者可以自定義分割槽策略,如hash分割槽。spark 和spark sql 在spark的基礎上實現了列儲存和列儲存壓縮
3、執行策略
mr在資料shuffle之前花費了大量的時間來排序,spark則可以減輕上述問題帶來的開銷,因為spark任務在shuffle中不是所有情景都需要排序,所以支援基於hash的分布式聚合,排程中採用更為通用的任務執行計畫 dag ,每一輪次的輸出結果在記憶體快取。
4、任務排程的開銷
傳統的mr系統,如hadoop 是為了首席執行官達數小時的批量作業而設計的,在某些極端情況下,提交乙個任務的延遲非常高。
spark採用了事件驅動的類庫 akka來啟動任務,通過執行緒池復用縣城來避免程序或執行緒啟動和切換開銷。
Spark和Hadoop,孰優孰劣?
spark已經取代hadoop成為最活躍的開源大資料專案。但是,在選擇大資料框架時,企業不能因此就厚此薄彼。近日,著名大資料專家bernard marr 在一篇文章中分析了spark和hadoop的異同。hadoop和spark均是大資料框架,都提供了一些執行常見大資料任務的工具。但確切地說,它們所...
spark相比MapReduce的優勢
spark 比hadoop快的原因 資料本地性 排程優化 傳輸優化,最主要的是基於記憶體計算和引入了dag。hadoop的計算結果在磁碟中,spark是在記憶體中 資料計算任務需要多個步驟時,hadoop需要引入oozie等工具,但是spark有dag hadoop中,每乙個job 的計算結果都會儲...
Spark相比MapReduce的優勢
mapreduce是apache hadoop中用於大規模資料集計算的平行計算框架,目前被廣泛應用於企業的離線資料處理上。但是因為種種原因,mapreduce的效能並不理想。而spark作為資料處理框架界的後起之秀,很多方面都超過了mapreduce。下面來列出mapreduce的不足以及spark...