任務任務優化1分割槽表,掃瞄指定的檔案數,減少處理的檔案
2.對map/reduce的輸出進行壓縮,map和reduce,壓縮可以減少io和網路傳輸的時間
set mapred.compress.map.output=true
3. 桶
4.並行化操作
引數 set hive.exce.parallel=true;.原理如下圖
並行執行任務個數,預設為8
5.vectorization
處理資料每次處理一批資料,而不是一行行處理
6.增大reduce個數set hive.vectorized.execution.enabled = true;
set hive.vectorized.execution.reduce.enabled = true;
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 建立...