Hive的優(yōu)化問題

總結:

一:key分布不均勻
1)key為null或異常值

對key進行打散
通過rand函數(shù)將為null的值分散到不同的值上;
對異常值賦一個隨機值來分散key

2)key為正常值

1:設置reducer參數(shù)值腻异,使用這個參數(shù)控制傾斜的閾值庭惜,如果超過這個值,新的值會發(fā)送給那些還沒有達到的reduce
2:增加reduce的數(shù)量
3:業(yè)務需求方面進行細分

二:group by 產(chǎn)生傾斜的問題
group by既可以分類也可以去重
1:對Map 端部分聚合涝开,相當于Combiner循帐,設置hive.map.aggr=true

2:設置hive.groupby.skewindata=true
控制生成兩個MR Job,第一個MR Job Map的輸出結果隨機分配到reduce做次預匯總,減少某些key值條數(shù)過多某些key條數(shù)過小造成的數(shù)據(jù)傾斜問題

即就是生成兩個MapReduce Job。第一個Job進行預處理舀武、部分聚合拄养,使得結果是相同的Group By Key可以分發(fā)到不同的Reduce中;第二個MapReduce Job將預處理數(shù)據(jù)結果按照Group By Key分發(fā)到Reduce中银舱,完成最終的聚合操作瘪匿;

三:count distinct大量相同特殊值

count distinct時,將值為空的情況單獨處理寻馏,如果是計算count distinct棋弥,可以不用處理,直接過濾操软,在最后結果中加1嘁锯。如果還有其他計算,需要進行group by聂薪,可以先將值為空的記錄單獨處理家乘,再和其他計算結果進行union(合并)。

四:Join優(yōu)化
1:將小表刷入內(nèi)存中藏澳,可以設置刷入內(nèi)存表的大腥示狻;將大表放在最后

Join時翔悠,Hive會緩存join序列中除了最后一個表的所有記錄业崖,在通過最后一個表將結果序列化到文件系統(tǒng)中野芒。這有助于在reduce端減少內(nèi)存的使用量,實踐中双炕,應該把最大的那個表寫在最后狞悲,否則會因為緩存浪費大量內(nèi)存(表的大小從左到右是依次增加的)

MapJoin就是在map階段時進行表之間的連接,而不需要進入到Reduce階段才進行連接妇斤,這樣就省下了在Shuffle階段時要進行的大量數(shù)據(jù)傳輸摇锋,從而起到了優(yōu)化作業(yè)的作用。

2:本地模式執(zhí)行任務

如果數(shù)據(jù)量 比較小站超,可以通過本地模式執(zhí)行所有任務荸恕,即在執(zhí)行的過程中通過設置為本地模式,因為本地模式下不會轉換為mapreduce任務死相,而是將本地的數(shù)據(jù)文件格式輸出

五:limit
開啟limit優(yōu)化融求,使用limit進行抽樣查詢,不需要全表掃描算撮,缺點是有些需要的數(shù)據(jù)可能被忽略掉

六:并行執(zhí)行
hive在執(zhí)行查詢的時候會將查詢轉化為一個或多個Job鏈生宛,執(zhí)行器會按照順序執(zhí)行這些Job;如果這些Job沒有依賴關系钮惠,則可以采取并行方式進行執(zhí)行茅糜。

七:啟用嚴格模式
Hive設置以一種嚴格模式,防止用戶進行一些意想不到的查詢
1:分區(qū)查詢時where中沒有分區(qū)過濾條件素挽,不允許掃描所有的分區(qū)蔑赘;
2:使用order by時必須使用limit限制,即可以防止reduce的額外執(zhí)行時間预明;
3:笛卡兒積缩赛,必須使用on字段,而不能使用where字句替代

八:Jvm重用
Hive Hql會轉化成MapReduce撰糠,MR會將job任務轉化為多個任務酥馍,每個人物都是一個新的JVM實例,重用這些實例阅酪,可以減少性能消耗

默認情況下旨袒,每個task都是一個新的JVM實例,都需要開啟和銷毀术辐。對于小文件砚尽,每個文件都會對應一個task,在一些情況下辉词,JVM開啟和銷毀的時間可能會比實際處理數(shù)據(jù)的時間消耗要長必孤,JVM重用是Hadoop調(diào)優(yōu)參數(shù)的內(nèi)容,其對Hive的性能具有非常大的影響瑞躺,特別是對于小文件的場景敷搪,這類場景執(zhí)行時間都很短

九:調(diào)整map和reduce的個數(shù)
有些只需要map兴想,不需要reduce;
hive是按照輸入數(shù)據(jù)量的大小調(diào)整reducer個數(shù)赡勘,hive中可以配置一個reducer的數(shù)量大小嫂便,可以動態(tài)的調(diào)整;


詳細內(nèi)容

數(shù)據(jù)傾斜定義

任務進度長時間維持在99%(或100%)闸与,查看任務監(jiān)控頁面顽悼,發(fā)現(xiàn)只有少量(1個或幾個)reduce子任務未完成。因為其處理的數(shù)據(jù)量和其他reduce差異過大几迄。

單一reduce的記錄數(shù)與平均記錄數(shù)差異過大,通潮溃可能達到3倍甚至更多映胁。 最長時長遠大于平均時長。

1 原因

1)甲雅、key分布不均勻

2)解孙、業(yè)務數(shù)據(jù)本身的特性

3)、建表時考慮不周

4)抛人、某些SQL語句本身就有數(shù)據(jù)傾斜

2 涉及到的操作

涉及到的操作
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末弛姜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子妖枚,更是在濱河造成了極大的恐慌廷臼,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绝页,死亡現(xiàn)場離奇詭異荠商,居然都是意外死亡,警方通過查閱死者的電腦和手機续誉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門莱没,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人酷鸦,你說我怎么就攤上這事饰躲。” “怎么了臼隔?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵嘹裂,是天一觀的道長。 經(jīng)常有香客問我躬翁,道長焦蘑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任盒发,我火速辦了婚禮例嘱,結果婚禮上狡逢,老公的妹妹穿的比我還像新娘。我一直安慰自己拼卵,他們只是感情好奢浑,可當我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著腋腮,像睡著了一般雀彼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上即寡,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天徊哑,我揣著相機與錄音,去河邊找鬼聪富。 笑死莺丑,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的墩蔓。 我是一名探鬼主播梢莽,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼奸披!你這毒婦竟也來了昏名?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤阵面,失蹤者是張志新(化名)和其女友劉穎轻局,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體样刷,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡嗽交,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了颂斜。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片夫壁。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖沃疮,靈堂內(nèi)的尸體忽然破棺而出盒让,到底是詐尸還是另有隱情,我是刑警寧澤司蔬,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布邑茄,位于F島的核電站,受9級特大地震影響俊啼,放射性物質發(fā)生泄漏肺缕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望同木。 院中可真熱鬧浮梢,春花似錦、人聲如沸彤路。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽洲尊。三九已至远豺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間坞嘀,已是汗流浹背躯护。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留丽涩,地道東北人榛做。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像内狸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子厘擂,可洞房花燭夜當晚...
    茶點故事閱讀 43,514評論 2 348

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