hive中數(shù)據(jù)傾斜

數(shù)據(jù)傾斜通常指hive根據(jù)key值hash分發(fā)到各個(gè)節(jié)點(diǎn),相同的key值會分發(fā)到一個(gè)執(zhí)行節(jié)點(diǎn)中,由于某些key值對應(yīng)的數(shù)據(jù)量比其它key值的數(shù)據(jù)量大很多,導(dǎo)致某些執(zhí)行節(jié)點(diǎn)的運(yùn)行時(shí)間遠(yuǎn)大于其它節(jié)點(diǎn),從而導(dǎo)致整個(gè)job執(zhí)行時(shí)間較長。
在hive中執(zhí)行的sql會有map和reduce兩個(gè)階段,map階段的數(shù)據(jù)傾斜主要為數(shù)據(jù)從磁盤讀入內(nèi)存時(shí)、join,reduce階段數(shù)據(jù)傾斜主要有join、group by、count distinct,針對于這些操作有不同的處理方式來避免數(shù)據(jù)傾斜。
一、map階段
1.由于map讀入數(shù)據(jù)的文件大小分布不均勻,并且小文件特別多,導(dǎo)致某些map讀取并處理的數(shù)據(jù)特別多
這種情況可通過參數(shù)調(diào)整防止由于小文件過多導(dǎo)致每個(gè)map讀取的數(shù)據(jù)量不均勻,mapred.max.split.size=256000000(每個(gè)map可以處理的最大文件大小,可調(diào)大該值來減少map數(shù))
二、reduce階段
1.join
數(shù)據(jù)表在進(jìn)行join時(shí)有兩種情況會出現(xiàn)傾斜:
(1)小表和大表join的傾斜
這種情況,可以直接使用hint(如/ + mapjoin(a) /)將小表全部加載到內(nèi)存中后順序掃描大表完成join(mapjoin有使用限制,必須是join中的從表較小時(shí)才可用,從表主要指left join中的右表,right join中的左表,小表最大為2GB)
(2)大表和大表join的傾斜
這種情況,需要具體原因具體分析:

滎經(jīng)網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,滎經(jīng)網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為滎經(jīng)近1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個(gè)售后服務(wù)好的滎經(jīng)做網(wǎng)站的公司定做!

  • 由某些特殊值引起的數(shù)據(jù)傾斜
    參數(shù)設(shè)置方式:hive.optimize.skewjoin=true; 將造成傾斜的特殊值先不處理直接寫入hdfs,然后新啟一個(gè)mapjoin專門處理特殊值;可以通過參數(shù)設(shè)置數(shù)據(jù)量超過多少默認(rèn)為特殊值,如hive.skewjoin.key=10000,表名超過10000條的key會被認(rèn)定為特殊值;
    特殊值的處理也可以在sql中進(jìn)行優(yōu)化,在sql中將特殊值與非特殊值分別處理,然后再通過union all拼接,但這樣會增加IO;
  • 由空值引起的數(shù)據(jù)傾斜
    將空值的key變?yōu)橐粋€(gè)字符串加上隨機(jī)數(shù),也可以借鑒特殊值的sql優(yōu)化方式;
  • 不同數(shù)據(jù)類型關(guān)聯(lián)產(chǎn)生的數(shù)據(jù)傾斜
    如int型的用戶id與string類型的用戶id進(jìn)行關(guān)聯(lián),hive默認(rèn)會將hash按int類型分配,string類型的數(shù)據(jù)會全部分配到一個(gè)reduce中,此時(shí)應(yīng)將int型轉(zhuǎn)化為string再做關(guān)聯(lián)
    2.group by + count distinct
    當(dāng)sql中出現(xiàn)這種情況時(shí),需預(yù)先對group by的字段進(jìn)行去重處理,然后再進(jìn)行count

當(dāng)前名稱:hive中數(shù)據(jù)傾斜
網(wǎng)址分享:http://muchs.cn/article46/jpdceg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、建站公司、關(guān)鍵詞優(yōu)化、小程序開發(fā)外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)