數(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)站的公司定做!
當(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)