Hive碎碎念(6):HIVE優(yōu)化


轉(zhuǎn)載請在文章起始處注明出處睛廊,謝謝滋恬。


Hive是將符合SQL語法的字符串解析生成可以在Hadoop上執(zhí)行的MapReduce的工具浅乔。使用Hive盡量按照分布式計算的一些特點來設(shè)計sql挑围,和傳統(tǒng)關(guān)系型數(shù)據(jù)庫有區(qū)別礁竞,所以需要去掉原有關(guān)系型數(shù)據(jù)庫下開發(fā)的一些固有思維。

基本原則:

1杉辙、盡量盡早地過濾數(shù)據(jù)模捂,減少每個階段的數(shù)據(jù)量,對于分區(qū)表要加分區(qū),同時只選擇需要使用到的字段
select ...

from A join B

on A.key = B.key

where A.userid > 10

 and B.userid < 10

 and A.dt = '2018-05-17'

 and B.dt = '2018-05-17';

改寫為:

select ....

from

( select ....

from A

 where dt='2018-05-17'

 and userid > 10

) a

join

( select ....

from B

 where dt = '2018-05-17'

 and userid < 10

) b

on a.key = b.key;
2、分區(qū)表統(tǒng)計盡量使用分區(qū)
3狂男、盡量避免一個SQL包含復(fù)雜邏輯

建議盡量使用中間表來完成復(fù)雜的邏輯處理综看。

4 、join操作

小表要注意放在join的左邊(關(guān)系型數(shù)據(jù)庫查詢中里面很多都小表放在join的右邊)岖食,否則會引起磁盤和內(nèi)存的大量消耗

5红碑、如果union all的部分個數(shù)大于2,或者每個union部分?jǐn)?shù)據(jù)量大泡垃,應(yīng)該拆成多個insert into 語句析珊,實際測試過程中,執(zhí)行時間能提升50%

舉例:

insert overwrite table tablename partition (dt= ....)

select ..... from (

 select ... from A

 union all

 select ... from B

 union all

 select ... from C

) t01

where ...;

改寫為:

insert into table tablename partition (dt= ....)

select .... from A

WHERE ...;

insert into table tablename partition (dt= ....)

select .... from B

WHERE ...;

insert into table tablename partition (dt= ....)

select .... from C

WHERE ...;
6蔑穴、寫SQL要先了解數(shù)據(jù)本身的特點忠寻,如果有join ,group操作的話,要注意是否會有數(shù)據(jù)傾斜

如果出現(xiàn)數(shù)據(jù)傾斜存和,應(yīng)當(dāng)做如下處理:

set hive.exec.reducers.max=200;
set mapred.reduce.tasks = 200;---增大Reduce個數(shù)
set hive.groupby.mapaggr.checkinterval=100000 ;--這個是group的鍵對應(yīng)的記錄條數(shù)超過這個值則會進行分拆,值根據(jù)具體數(shù)據(jù)量設(shè)置
set hive.groupby.skewindata=true; --如果是group by過程出現(xiàn)傾斜 應(yīng)該設(shè)置為true
set hive.skewjoin.key=100000; --這個是join的鍵對應(yīng)的記錄條數(shù)超過這個值則會進行分拆,值根據(jù)具體數(shù)據(jù)量設(shè)置
set hive.optimize.skewjoin=true;--如果是join 過程出現(xiàn)傾斜 應(yīng)該設(shè)置為true
PS:Hive優(yōu)化參數(shù)(寫在執(zhí)行語句前)
set hive.input.format = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
set hive.hadoop.supports.splittable.combineinputformat=true;
set mapreduce.input.fileinputformat.split.maxsize = 256000000;
set mapreduce.input.fileinputformat.split.minsize.per.node = 128000000;
set mapreduce.input.fileinputformat.split.minsize.per.rack = 128000000;
set hive.merge.mapfiles = true;
set hive.merge.mapredfiles = true;
set hive.merge.size.per.task = 256000000;
set hive.merge.smallfiles.avgsize = 256000000;
set hive.exec.parallel = true;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末奕剃,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子哑姚,更是在濱河造成了極大的恐慌祭饭,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叙量,死亡現(xiàn)場離奇詭異倡蝙,居然都是意外死亡,警方通過查閱死者的電腦和手機绞佩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門寺鸥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人品山,你說我怎么就攤上這事胆建。” “怎么了肘交?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵笆载,是天一觀的道長。 經(jīng)常有香客問我涯呻,道長凉驻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任复罐,我火速辦了婚禮涝登,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘效诅。我一直安慰自己胀滚,他們只是感情好趟济,可當(dāng)我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著咽笼,像睡著了一般顷编。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上褐荷,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天勾效,我揣著相機與錄音,去河邊找鬼叛甫。 笑死,一個胖子當(dāng)著我的面吹牛杨伙,可吹牛的內(nèi)容都是我干的其监。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼限匣,長吁一口氣:“原來是場噩夢啊……” “哼抖苦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起米死,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤锌历,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后峦筒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體究西,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年物喷,在試婚紗的時候發(fā)現(xiàn)自己被綠了卤材。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡峦失,死狀恐怖扇丛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情尉辑,我是刑警寧澤帆精,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站隧魄,受9級特大地震影響卓练,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜堤器,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一昆庇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧闸溃,春花似錦整吆、人聲如沸拱撵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拴测。三九已至,卻和暖如春府蛇,著一層夾襖步出監(jiān)牢的瞬間集索,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工汇跨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留务荆,地道東北人。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓穷遂,卻偏偏與公主長得像函匕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蚪黑,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容