HIVE- 數(shù)據(jù)傾斜

數(shù)據(jù)傾斜就是由于數(shù)據(jù)分布不均勻含友,數(shù)據(jù)大量集中到一點上,造成數(shù)據(jù)熱點压昼。大多數(shù)情況下,分為一下三種情況:

1.map端執(zhí)行比較快侠草,reduce執(zhí)行很慢,因為partition造成的數(shù)據(jù)傾斜犁嗅。

2.某些reduce很快边涕,某些reduce很慢,也是因為partition造成的數(shù)據(jù)傾斜褂微。?

3.某些map執(zhí)行很快功蜓,某些map執(zhí)行很慢,這是因為數(shù)據(jù)本身的分布的不合理性造成的宠蚂。?

造成上面reduce和map任務(wù)運(yùn)行很緩慢本質(zhì)上就兩種情況:

第一:reduce緩慢是因為partition造成滴式撼;

第二:map端緩慢是因為數(shù)據(jù)本身的分布不合理性。

下面介紹map緩慢和reduce緩慢

Reduce端緩慢:兩個table的join操作會造成數(shù)據(jù)傾斜肥矢,會造成reduce緩慢端衰,這個相對比較好解決叠洗,我們不是有三種解決join性能的方案嗎甘改?mapjoin,common join灭抑,smbJoin可以解決數(shù)據(jù)傾斜十艾。另外,有些情況下造成的reduce緩慢無法解決腾节,因為數(shù)據(jù)本身也不是服從均勻分布忘嫉。大多數(shù)還是高斯分布荤牍。

reduce性能本質(zhì)上是由于groupby操作導(dǎo)致的,而count(distinct)內(nèi)部本質(zhì)也是有g(shù)roupby實現(xiàn)

map端緩慢:這種情況是由于每條數(shù)據(jù)的相對位置造成的庆冕。有兩種方案:

第一:設(shè)置在map端聚合康吵,set hive.map.aggr=true 可以減小壓力(默認(rèn)開啟)

第二:可以set hive.groupby.skewindata=true(默認(rèn)關(guān)閉),此時hive的執(zhí)行在MR后臺會存在兩個map一個reduce访递,第一個map本質(zhì)上就是先對數(shù)據(jù)進(jìn)行shuffle晦嵌,第二個map就可以對shuffle之后的數(shù)據(jù)進(jìn)行操作。

join和Group的優(yōu)化

2.1 對于普通的join操作拷姿,會在map端根據(jù)key的hash值惭载,shuffle到某一個reduce上去,在reduce端做join連接操作响巢,內(nèi)存中緩存join左邊的表描滔,遍歷右邊的表,一次做join操作踪古。所以在做join操作時候含长,將數(shù)據(jù)量多的表放在join的右邊。

當(dāng)數(shù)據(jù)量比較大伏穆,并且key分布不均勻茎芋,大量的key都shuffle到一個reduce上了,就出現(xiàn)了數(shù)據(jù)的傾斜蜈出。

在map端產(chǎn)生join

? ? ? ? ?mapJoin的主要意思就是田弥,當(dāng)鏈接的兩個表是一個比較小的表和一個特別大的表的時候,我們把比較小的table直接放到內(nèi)存中去铡原,然后再對比較大的表格進(jìn)行map操作偷厦。join就發(fā)生在map操作的時候,每當(dāng)掃描一個大的table中的數(shù)據(jù)燕刻,就要去去查看小表的數(shù)據(jù)只泼,哪條與之相符,繼而進(jìn)行連接卵洗。這里的join并不會涉及reduce操作请唱。map端join的優(yōu)勢就是在于沒有shuffle,

2.2 對于Group操作过蹂,首先在map端聚合十绑,最后在reduce端坐聚合,hive默認(rèn)是這樣的酷勺,以下是相關(guān)的參數(shù)

· hive.map.aggr = true是否在 Map 端進(jìn)行聚合本橙,默認(rèn)為 True

· hive.groupby.mapaggr.checkinterval = 100000在 Map 端進(jìn)行聚合操作的條目數(shù)目

當(dāng)然有的hive操作,不存在數(shù)據(jù)傾斜的問題脆诉,比如數(shù)據(jù)聚合類的操作甚亭,像sum贷币、count,因為已經(jīng)在map端做了聚合操作了亏狰,到reduce端的數(shù)據(jù)相對少一些役纹,所以不存在這個問題。

空值數(shù)據(jù)傾斜

場景:如日志中暇唾,常會有信息丟失的問題字管,比如全網(wǎng)日志中的user_id,如果取其中的user_id和bmw_users關(guān)聯(lián)信不,會碰到數(shù)據(jù)傾斜的問題嘲叔。

解決方法1?user_id為空的不參與關(guān)聯(lián)

解決方法2?賦與空值分新的key值

不同數(shù)據(jù)類型關(guān)聯(lián)產(chǎn)生數(shù)據(jù)傾斜

場景:一張表s8的日志,每個商品一條記錄抽活,要和商品表關(guān)聯(lián)硫戈。但關(guān)聯(lián)卻碰到傾斜的問題。s8的日志中有字符串商品id,也有數(shù)字的商品id,類型是string的下硕,但商品中的數(shù)字id是bigint的丁逝。猜測問題的原因是把s8的商品id轉(zhuǎn)成數(shù)字id做hash來分配reduce,所以字符串id的s8日志梭姓,都到一個reduce上了霜幼,解決的方法驗證了這個猜測。

解決方法:把數(shù)字類型轉(zhuǎn)換成字符串類型

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末誉尖,一起剝皮案震驚了整個濱河市罪既,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌铡恕,老刑警劉巖琢感,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異探熔,居然都是意外死亡驹针,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門诀艰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來柬甥,“玉大人,你說我怎么就攤上這事其垄】疗眩” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵捉捅,是天一觀的道長撤防。 經(jīng)常有香客問我虽风,道長棒口,這世上最難降的妖魔是什么寄月? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮无牵,結(jié)果婚禮上漾肮,老公的妹妹穿的比我還像新娘。我一直安慰自己茎毁,他們只是感情好克懊,可當(dāng)我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著七蜘,像睡著了一般谭溉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上橡卤,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天扮念,我揣著相機(jī)與錄音,去河邊找鬼碧库。 笑死柜与,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的嵌灰。 我是一名探鬼主播弄匕,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼沽瞭!你這毒婦竟也來了迁匠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤驹溃,失蹤者是張志新(化名)和其女友劉穎柒瓣,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吠架,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡芙贫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了傍药。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片磺平。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖拐辽,靈堂內(nèi)的尸體忽然破棺而出拣挪,到底是詐尸還是另有隱情,我是刑警寧澤俱诸,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布菠劝,位于F島的核電站,受9級特大地震影響睁搭,放射性物質(zhì)發(fā)生泄漏赶诊。R本人自食惡果不足惜笼平,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望舔痪。 院中可真熱鬧寓调,春花似錦、人聲如沸锄码。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽滋捶。三九已至痛悯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間重窟,已是汗流浹背灸蟆。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留亲族,地道東北人炒考。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像霎迫,于是被迫代替她去往敵國和親斋枢。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,843評論 2 354

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