中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

hive如何優化

發布時間:2021-12-10 09:17:09 來源:億速云 閱讀:175 作者:小新 欄目:大數據

這篇文章主要介紹了hive如何優化,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

Hive謂詞下推(Predicate pushdown)

參數打開設置:hive.optimize.ppd=true

實現:在不影響結果的情況下,盡量將過濾條件提前執行。謂詞下推后,過濾條件在map端執行,減少了map端的輸出,降低了數據在集群上傳輸的量,節約了集群的資源,也提升了任務的性能。

開啟Map端聚合功能

參數打開設置:hive.map.aggr=true

實現:在map中會做部分聚集操作,能夠使map傳送給reduce的數據量大大減少,從而在一定程度上減輕group by帶來的數據傾斜。

小文件合并

參數設置:

set hive.merge.mapfiles = true ##在 map only 的任務結束時合并小文件

set hive.merge.mapredfiles = false ## true 時在 MapReduce 的任務結束時合并小文件

set hive.merge.size.per.task =256*1000*1000 ##合并文件的大小

set mapred.max.split.size=256000000; ##每個 Map 最大分割大小

set mapred.min.split.size.per.node=1; ##一個節點上 split 的最少值

sethive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat; ##執行 Map 前進行小文件合并

實現:文件數目過多,會給HDFS帶來壓力,并且會影響處理效率,可以通過合并Map和Reduce的結果文件來消除這樣的影響。

解決group by造成的數據傾斜

參數設置:hive.groupby.skewindata=true

實現:當選項設定為 true,生成的查詢計劃會有兩個 MR Job。第一個 MR Job 中,Map 的輸出結果集合會隨機分布到Reduce 中,每個 Reduce 做部分聚合操作,并輸出結果,這樣處理的結果是相同的 Group By Key有可能被分發到不同的 Reduce 中,從而達到負載均衡的目的;第二個 MR Job 再根據預處理的數據結果按照 Group ByKey 分布到 Reduce 中(這個過程可以保證相同的 Group By Key 被分布到同一個 Reduce中),最后完成最終的聚合操作。

當hive.groupby.skewindata=true時,hive不支持多列上的去重操作,并報錯:

Error in semanticanalysis: DISTINCT on different columns notsupported with skew in data.

并行執行

參數設置:

set hive.exec.parallel=true,可以開啟并發執行。

set hive.exec.parallel.thread.number=16; //同一個sql允許最大并行度,默認為8。

實現:Hive會將一個查詢轉化為一個或多個階段,包括:MapReduce階段、抽樣階段、合并階段、limit階段等。默認情況下,一次只執行一個階段。不過,如果某些階段不是互相依賴,是可以并行執行的。

限制笛卡爾積查詢

兩張表join時必須有on語句

參數設置:set hive.mapred.mode=strict

實現:即使數據量不大的情況下,笛卡爾積造成的數據壓力也是很可觀的,盡量在參數階段進行限制,防止誤操作。

SQL層面優化

對于復雜的邏輯加工,有以下幾個原則:

1、數據量大的表應盡早進行數據篩選并可插入到一張臨時表,比如按日期篩選或者地區等,再與其他表進行邏輯關聯,可大大減少數據處理時間,這是最簡單也是最有效的辦法;

2、多個結果集union all的時候,可以使用逐個insertinto到結果表的方式,可提高數據處理速度;

3、join操作左表盡可能放置小表,MR的處理邏輯將小表緩存內存里,然后再去掃描大表,此時效率高;

4、hive雖然已經支持in/exists語法,少量查詢也是可以用的,但是更推薦用left semi join形式改寫一下,可以在數據量大的時候對比下兩種寫法效率;

5、還有一些基礎的原則啰嗦下:sort by代替order by;group by代替distinct;多表join盡量key相同;空值在join中可能會造成數據傾斜,如果空值部分數據對結果集無影響,提前篩掉;等等~

實際生產中一定要結合業務和公司數據特點,某些優化也不是萬能藥膏,多些實踐對比總會發現更多優化空間。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“hive如何優化”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

山丹县| 惠安县| 郸城县| 临西县| 禹州市| 博罗县| 伽师县| 金川县| 修水县| 偃师市| 外汇| 中牟县| 襄垣县| 龙里县| 赤壁市| 芮城县| 双流县| 阿克陶县| 洪江市| 九龙坡区| 林周县| 汽车| 通榆县| 湘乡市| 合川市| 修文县| 灵石县| 甘谷县| 双柏县| 南部县| 宁化县| 客服| 读书| 东源县| 遂宁市| 庐江县| 黎川县| 水富县| 类乌齐县| 武胜县| 年辖:市辖区|