map端做join和reduce端做join有何區(qū)別?
馬克-to-win @ 馬克java社區(qū):map 端做join和reduce端做join有何區(qū)別?我們前面講的是Reduce端join,因?yàn)镽educe端join需要把所有的數(shù)據(jù)都經(jīng)過 Shuffle,非常消耗資源,效率要遠(yuǎn)遠(yuǎn)低于Map端join。Map端join是指只有map工作,reduce不工作,這樣可以有效的避免數(shù)據(jù)傾斜。
馬克- to-win:馬克 java社區(qū):防盜版實(shí)名手機(jī)尾號(hào): 73203。
馬克-to-win @ 馬克java社區(qū):什么叫數(shù)據(jù)傾斜(data skew)?假如,你有兩個(gè)reduce節(jié)點(diǎn),數(shù)據(jù)都跑到第一個(gè)節(jié)點(diǎn),(比如p_id=p1的數(shù)據(jù)非常多)第二個(gè)節(jié)點(diǎn)沒什么數(shù)據(jù), 結(jié)果第一個(gè)節(jié)點(diǎn),工作完成總是卡在99.99%,一直99.99%不能結(jié)束。