天天看點

Shark

Shark自己也沒用過,不太熟悉,隻了解它的背景,現在已經被Spark淘汰,也不去熟悉它了!

Spark 1.0版本開始,推出了Spark SQL。

其實最早使用的,都是Hadoop自己的Hive查詢引擎;但是後來Spark提供了Shark;再後來Shark被淘汰,推出了Spark SQL。Shark的性能比Hive就要高出一個數量級,而Spark SQL的性能又比Shark高出一個數量級。

最早來說,Hive的誕生,主要是因為要讓那些不熟悉Java,無法深入進行MapReduce程式設計的資料分析師,能夠使用他們熟悉的關系型資料庫的SQL模型,來操作HDFS上的資料。是以推出了Hive。Hive底層基于MapReduce實作SQL功能,能夠讓資料分析人員,以及資料開發人員,友善的使用Hive進行資料倉庫的模組化和建設,然後使用SQL模型針對資料倉庫中的資料進行統計和分析。但是Hive有個緻命的缺陷,就是它的底層基于MapReduce,而MapReduce的shuffle又是基于磁盤的,是以導緻Hive的性能異常低下。進場出現複雜的SQL ETL,要運作數個小時,甚至數十個小時的情況。

後來,Spark推出了Shark,Shark與Hive實際上還是緊密關聯的,Shark底層很多東西還是依賴于Hive,但是修改了記憶體管理、實體計劃、執行三個子產品,底層使用Spark的基于記憶體的計算模型,進而讓性能比Hive提升了數倍到上百倍。

然而,Shark還是它的問題所在,Shark底層依賴了Hive的文法解析器、查詢優化器等元件,是以對于其性能的提升還是造成了制約。是以後來Spark團隊決定,完全抛棄Shark,推出了全新的Spark SQL項目。Spark SQL就不隻是針對Hive中的資料了,而且可以支援其他很多資料源的查詢。

上一篇: Spark筆試
下一篇: SparkR