CDH 中使用 Hive on Spark
阿新 • • 發佈:2022-03-17
前言
使用 Hive insert SQL 後檢視 Yarn 發現其跑的是 MR 方式
這裡想改用 Spark 引起來縮短 HiveQL 的響應時間
有兩種方式
- SparkSQL
- Hive on Spark
兩種方式都可以,看個人習慣
Hive on Spark 大體與 SparkSQL 結構類似,只是 SQL 引擎不同,但是計算引擎都是 Spark
本文主要介紹 Hive on Spark
實操
CDH Hive 配置中可以看到有官方的提示配置文件
要將 Hive 配置為在 Spark 上執行,請執行以下兩個步驟
- 配置 Hive 依賴項為 Spark 服務
- 配置 Hive 客戶端以使用 Spark 執行引擎
配置 Hive 依賴項為 Spark 服務
按照官方文件操作即可
- 在 Cloudera Manager 管理控制檯中,轉到 Hive 服務
- 單擊配置選項卡
- 搜尋 Spark On YARN 服務。要配置 Spark 服務,請選擇 Spark 服務名稱。要刪除依賴項,請選擇 none
- 點選儲存更改。
- 進入Spark服務。
- 在 HiveServer2 所在的主機上新增 Spark 的 gateway 角色(即客戶端)
- 重啟 Hive、Spark 服務
配置 Hive 客戶端以使用 Spark 執行引擎
CDH 中的 Hive 支援兩個執行引擎: MapReduce 和 Spark
要配置執行引擎,請執行以下步驟之一
beeline/hive: 執行 set hive.execution.engine=engine
命令,engine 選項要麼wei mr
要麼為 spark
,
預設為 mr
set hive.execution.engine=spark; # 檢視當前的設定執行引擎 set hive.execution.engine;
Cloudera Manager(影響所有查詢,不推薦):
- 轉到 Hive 服務
- 單擊配置選項卡
- 搜尋 “execution”
- 將”Default Execution Engine”屬性設定為 MapReduce 或 Spark。預設值為 MapReduce
- 重啟 Hive 服務
優化
官方文件中提到效能
暫未研究,有興趣的可以自行看看
參考連結