hive 優化指南

2021-08-26 09:46:12 字數 1470 閱讀 4032

任務任務優化

1分割槽表,掃瞄指定的檔案數,減少處理的檔案

2.對map/reduce的輸出進行壓縮,map和reduce,壓縮可以減少io和網路傳輸的時間

set mapred.compress.map.output=true

3. 桶

4.並行化操作

引數 set hive.exce.parallel=true;.原理如下圖

並行執行任務個數,預設為8    

5.vectorization

處理資料每次處理一批資料,而不是一行行處理

set hive.vectorized.execution.enabled = true;

set hive.vectorized.execution.reduce.enabled = true;

6.增大reduce個數

set hive.exec.reducers.max=200;

set mapred.reduce.tasks= 200;---增大reduce個數

7.hive.map.aggr       group  by 查詢時是否在map端聚合,預設false

8.hive.groupby.skewindata = false

group by 的時候,有的reduce會處理大量資料,造成

資料傾斜,這個引數會生成兩個mr任務,乙個將處理結果分布到

不同的reduce中,第二個mr任務再將 group by,相同的key

分到乙個reduce中,預設false

9.hive.mapred.mode    預設strict

1.order by 必須limit ,order by 全域性排序只有乙個reduce

如果不限制的話,時間很長

2.必須指定分割槽

3.限制笛卡爾積,

select * from fracture_act join fracture_ads

where fracture_act.planner_id = fracture_ads.planner_id;

必須用on連線

10 count(distinct) 優化

hive count(distinct)這種操作只能利用到乙個reduce,所以如果資料量大的會,任務執行很慢,優化思路,多個節點計算

先對distinct欄位分組,再計算分組個數

11join原理

map join 小表放在左邊,不用走reduce

12hive 轉換成mapreduce原理

13 資料分析利器之hive優化十大原則

hive效能優化指南 初級篇

這個標題也是用血的教訓換來的,希望對剛進入hive圈的童鞋和正在hive圈爬坑的童鞋有所幫助。打算分以下幾個部分去描述 這篇文章只是起個頭,為描述其他部分做下準備。下面我贅述下hive的結構和一些基本的操作。首先,我來說說什麼是hive what is hive?請看下圖 由於是在retina下截的...

hive 幾種hive優化方法

1.通過explain或者explain extended來檢視執行計畫。explain select from u3 執行結果 stage dependencies stage 0 is a root stage stage plans stage stage 0 fetch operator l...

《Hive程式設計指南》之Hive環境安裝

hive 1 解壓 2 配置 hadoop home hive home等環境變數 3 修改配置檔案hive conf cp hive default.xml.template hive site.xml 修改hive.metastore.schema.verification的值為false 建立...