Spark為什么快,Spark SQL 一定比 Hive 快嗎
Spark為什么快,Spark SQL 一定比 Hive 快嗎
Spark SQL 比 Hadoop Hive 快,是有一定條件的,而且不是 Spark SQL 的引擎比 Hive 的引擎快,相反,Hive 的 HQL 引擎還比 Spark SQL 的引擎更快。其實,關鍵還是在于 Spark 本身快。
消除了冗余的 HDFS 讀寫: Hadoop 每次 shuffle 操作后,必須寫到磁盤,而 Spark 在 shuffle 后不一定落盤,可以 persist 到內存中,以便迭代時使用。如果操作復雜,很多的 shufle 操作,那么 Hadoop 的讀寫 IO 時間會大大增加,也是 Hive 更慢的主要原因了。
消除了冗余的 MapReduce 階段: Hadoop 的 shuffle 操作一定連著完整的 MapReduce 操作,冗余繁瑣。而 Spark 基于 RDD 提供了豐富的算子操作,且 reduce 操作產生 shuffle 數據,可以緩存在內存中。
JVM 的優化: Hadoop 每次 MapReduce 操作,啟動一個 Task 便會啟動一次 JVM,基于進程的操作。而 Spark 每次 MapReduce 操作是基于線程的,只在啟動 Executor 是啟動一次 JVM,內存的 Task 操作是在線程復用的。每次啟動 JVM 的時間可能就需要幾秒甚至十幾秒,那么當 Task 多了,這個時間 Hadoop 不知道比 Spark 慢了多少。
Hive spark SQL
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。