hive可以有很多方法進行調優,具體方法如下:
本地模式:
當要處理的資料很小時,完全分布式的啟動時間比作業時間要長時,可以使用本地模式
-- 通過以下設定開啟本地模式
set hive.exec.mode.local.auto=
true;--
default
false
set hive.exec.mode.local.auto.inputbytes.max=
50000000
; set hive.exec.mode.local.auto.input.files.max=5;
--default
4
當reduce的總數為1或者0時才可以使用
並行模式(沒有依賴關係):
上乙個mapreduce的輸出結果和下乙個mapreduce的輸出結果沒有依賴關心, 才可以使用
它們可以並行執行以節省總體作業執行時間
如果集群的利用率已經很高,並行執行幫助不大
-- 通過以下設定開啟並行執行
set hive.exec.parallel=
true;--
default
false
set hive.exec.parallel.thread.number=16;
--default
8,
定義並行執行的最大數量
開啟jvm重用:
通過共享jvm來重用jvm,以序列的方式執行mapreduce job ,適合與同乙個job中的map或者reduce任務
-- 通過以下設定開啟jvm重用
set mapred.job.reuse.jvm.num.tasks =5;
-- 預設值為1
嚴格模式:開啟嚴格模式
對於語法不規範的語句不予以執行。
fetch抓取,避免執行mapreduce程式
防止資料傾斜:
set hive.optimize.skewjoin=
true
;
explain根據語法樹,進行語句優化
合理設定map(設定切片和塊的大小)和reduce的數量
hive效能調優
原文 limit 限制調整 因為使用 limit 語句時候,是先執行整個查詢語句,然後再返回部分結果的 set hive.limit.optimize.enable true set hive.limit.row.max.size 10000 set hive.limit.optimize.limi...
Hive效能調優
軟體環境 hive1.2.1 hadoop2.6.4 直接使用hive cli模式執行 1.設定執行引擎 set hive.execution.engine mr set hive.execution.engine spark 如果設定執行引擎為mr,那麼就會呼叫hadoop的maprecude來執...
Hive引數調優
一 map 階段的優化 1.map數的計算公式為 num map tasks max min mapred.min.spilt.size 指的是資料的最小分割單元大小 預設為1b mapred.max.split.size 指的是資料的最大分割單元大小 預設為 256mb dfs.block.siz...