面試必備 Spark為什麼比Hadoop快

2021-09-06 15:14:30 字數 1699 閱讀 7061

大資料工程師都喜歡拿spark和hadoop進行對比。在大資料開發面試中,我們也會經常說到hadoop spark這兩個常用框架。當我們被問到為什麼spark比hadoop快時,大多數人一般的理解就是:spark是基於記憶體的計算,而hadoop是基於磁碟的計算;spark是一種記憶體計算技術

果真如此嗎?事實上,不光spark是記憶體計算,hadoop其實也是記憶體計算。spark和hadoop的根本差異是多個任務之間的資料通訊問題:spark多個任務之間資料通訊是基於記憶體,而hadoop是基於磁碟。

在進行sql進行資料查詢時,spark sql比hadoop hive快,是有一定條件的,而且不是spark sql的引擎一定比hive的引擎快,相反,hive的hql引擎還比spark sql的引擎更快。

記憶體計算技術是指將資料持久化至記憶體ram中進行加工處理的技術。spark並不支援將資料持久化至記憶體中,我們通常所說的是spark的資料快取技術,如將rdd資料快取至記憶體,但並沒有實現持久化。快取資料是可以擦除的,擦除後同樣是需要我們重新計算的。spark的資料處理是在記憶體中進行的,這話並沒有錯,其實當前的所有作業系統的資料處理都是在記憶體中進行的。所以,這記憶體計算並不是spark的特性。

spark是允許我們利用快取技術和lru演算法快取資料的。spark的所有運算並不是全部都在記憶體中,當shuffle發生的時候,資料同樣是需要寫入磁碟的。所以,spark並不是基於記憶體的技術,而是使用了快取機制的技術。

spark是允許我們利用快取技術和lru演算法快取資料的。spark的所有運算並不是全部都在記憶體中,當shuffle發生的時候,資料同樣是需要寫入磁碟的。所以,spark並不是基於記憶體的技術,而是使用了快取機制的技術。

spark最引以為豪的就是官網介紹的經典案例。這個案例是邏輯回歸機器學習演算法,該演算法主要特徵是對同乙份資料的反覆迭代運算。spark是記憶體快取,所以資料只載入一次,hadoop則需要反覆載入。實際情況下,spark通常比hadoop快十倍以內是合理的。主要快在**呢?

其實,關鍵還是在於spark 本身快。

spark比hadoop快的主要原因有:

1.消除了冗餘的hdfs讀寫

hadoop每次shuffle操作後,必須寫到磁碟,而spark在shuffle後不一定落盤,可以cache到記憶體中,以便迭代時使用。如果操作複雜,

很多的shufle操作,那麼hadoop的讀寫io時間會大大增加。

2.消除了冗餘的mapreduce階段

hadoop的shuffle操作一定連著完整的mapreduce操作,冗餘繁瑣。而spark基於rdd提供了豐富的運算元操作,且reduce操作產生shuffle

資料,可以快取在記憶體中。

3.jvm的優化

select month_id,sum(sales) from t group by month_id;
這個查詢只有一次shuffle操作,此時,也許hive hql的執行時間也許比spark還快。

spark快不是絕對的,但是絕大多數,spark都比hadoop計算要快。這主要得益於其對mapreduce操作的優化以及對jvm使用的優化。

所以,整體而言,spark比hadoop的mr程式效能要高,正常在三到四倍左右,而並不是官網所說的高幾百倍。

參考文獻:

Spark 為什麼比Hadoop快

spark sql比hadoop hive快,是有一定條件的,而且不是spark sql的引擎比hive的引擎快,相反,hive的hql引擎還比spark sql的引擎更快。color red b 其實,關鍵還是在於spark 本身快。b color color red size large b s...

Spark 為什麼比Hadoop快

spark sql比hadoop hive快,是有一定條件的,而且不是spark sql的引擎比hive的引擎快,相反,hive的hql引擎還比spark sql的引擎更快。color red b 其實,關鍵還是在於spark 本身快。b color color red size large b s...

什麼是 Spark 為什麼存在 Spark

spark 計算引擎 apache spark 是專為大規模資料處理而設計的快速通用的計算引擎。spark是uc berkeley amp lab 加州大學伯克利分校的amp實驗室 所開源的類hadoop mapreduce的通用並行框架,spark,擁有hadoop mapreduce所具有的優點...