大數據培訓_為什么Spark比MapReduce快100X
SparkSpark比MapReduce快100X
Spark對速度的較大聲稱是它能夠 “在內存中運行程序比Hadoop MapReduce快100倍,在磁盤上運行速度提高10倍。” Spark可以提出這種說法,因為它在工作節點的主存儲器中進行處理,并防止對磁盤進行不必要的 I / O操作。
?
Spark提供鏈接任務
Spark提供的另一個優勢是即使在應用程序編程級別也可以鏈接任務,而無需寫入磁盤或較大限度地減少對磁盤的寫入次數(說的就是DAG的好處)。
Spark減少了磁盤 IO 的操作
Spark 計算比 MapReduce 快的根本原因在于 DAG 計算模型。一般而言,DAG 相比MapReduce 在大多數情況下可以減少 shuffle 次數。Spark 的 DAGScheduler 相當于一個改進版的 MapReduce,如果計算不涉及與其他節點進行數據交換,Spark 可以在內存中一次性完成這些操作,也就是中間結果無須落盤,減少了磁盤 IO 的操作。但是,如果計算過程中涉及數據交換,Spark 也是會把 shuffle 的數據寫磁盤的!有一個誤區,Spark 是基于內存的計算,所以快,這不是主要原因,要對數據做計算,必然得加載到內存,Hadoop 也是如此,只不過 Spark 支持將需要反復用到的數據給 Cache 到內存中,減少數據加載耗時,所以 Spark 跑機器學習算法比較在行(需要對數據進行反復迭代)。Spark 基于磁盤的計算也是比 Hadoop 快。剛剛提到了 Spark 的 DAGScheduler 是個改進版的 MapReduce,所以 Spark天生適合做批處理的任務。Hadoop 的 MapReduce 雖然不如 spark 性能好,但是 HDFS 仍然是業界的大數據存儲標準。