在大數據開發中,Hive 已經成為最常用的數據倉庫工具之一。隨著業務數據規模的不斷擴大,Hive 默認的 MapReduce 執行引擎 顯得笨重低效。為了提升查詢性能,Hive 支持了 Tez 和 Spark 作為底層執行引擎。本文將帶你對比 Hive on Tez 與 Hive on Spark 的區別,并分享調優經驗。
一、Hive 執行引擎的發展歷程
-
Hive on MapReduce(早期默認)
- 基于 MR 執行,穩定但速度慢;
- 每個 SQL 查詢都需要多個 MR Job,啟動開銷大。
-
Hive on Tez(Apache Tez)
- MapReduce 的改進版,采用有向無環圖(DAG)模型;
- 避免了不必要的中間結果落盤,性能顯著提升。
-
Hive on Spark
- 利用 Spark 的內存計算優勢;
- 更適合復雜 SQL 與交互式查詢。