<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    paulwong

    Hadoop的幾種Join方法

    1) 在Reduce階段進(jìn)行Join,這樣運(yùn)算量比較小.(這個(gè)適合被Join的數(shù)據(jù)比較小的情況下.)
    2) 壓縮字段,對(duì)數(shù)據(jù)預(yù)處理,過(guò)濾不需要的字段.
    3) 最后一步就是在Mapper階段過(guò)濾,這個(gè)就是Bloom Filter的用武之地了.也就是需要詳細(xì)說(shuō)明的地方.


    下面就拿一個(gè)我們大家都熟悉的場(chǎng)景來(lái)說(shuō)明這個(gè)問(wèn)題: 找出上個(gè)月動(dòng)感地帶的客戶資費(fèi)的使用情況,包括接入和撥出.

    (這個(gè)只是我臆想出來(lái)的例子,根據(jù)實(shí)際的DB數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),在這個(gè)場(chǎng)景下肯定有更好的解決方案,大家不要太較真哦)

    這個(gè)時(shí)候的兩個(gè)個(gè)數(shù)據(jù)集都是比較大的,這兩個(gè)數(shù)據(jù)集分別是:上個(gè)月的通話記錄,動(dòng)感地帶的手機(jī)號(hào)碼列表.


    比較直接的處理方法有2種:

    1)在 Reduce 階段,通過(guò)動(dòng)感地帶號(hào)碼來(lái)過(guò)濾.

    優(yōu)點(diǎn):這樣需要處理的數(shù)據(jù)相對(duì)比較少,這個(gè)也是比較常用的方法.

    缺點(diǎn):很多數(shù)據(jù)在Mapper階段花了老鼻子力氣匯總了,還通過(guò)網(wǎng)絡(luò)Shuffle到Reduce節(jié)點(diǎn),結(jié)果到這個(gè)階段給過(guò)濾了.



    2)在 Mapper 階段時(shí),通過(guò)動(dòng)感地帶號(hào)碼來(lái)過(guò)濾數(shù)據(jù).

    優(yōu)點(diǎn):這樣可以過(guò)濾很多不是動(dòng)感地帶的數(shù)據(jù),比如神州行,全球通.這些過(guò)濾的數(shù)據(jù)就可以節(jié)省很多網(wǎng)絡(luò)帶寬了.

    缺點(diǎn):就是動(dòng)感地帶的號(hào)碼不是小數(shù)目,如果這樣處理就需要把這個(gè)大塊頭復(fù)制到所有的Mapper節(jié)點(diǎn),甚至是Distributed Cache.(Bloom Filter就是用來(lái)解決這個(gè)問(wèn)題的)


    Bloom Filter就是用來(lái)解決上面方法2的缺點(diǎn)的.

    方法2的缺點(diǎn)就是大量的數(shù)據(jù)需要在多個(gè)節(jié)點(diǎn)復(fù)制.Bloom Filter通過(guò)多個(gè)Hash算法, 把這個(gè)號(hào)碼列表壓縮到了一個(gè)Bitmap里面. 通過(guò)允許一定的錯(cuò)誤率來(lái)?yè)Q空間, 這個(gè)和我們平時(shí)經(jīng)常提到的時(shí)間和空間的互換類似.詳細(xì)情況可以參考:

    http://blog.csdn.net/jiaomeng/article/details/1495500

    但是這個(gè)算法也是有缺陷的,就是會(huì)把很多神州行,全球通之類的號(hào)碼當(dāng)成動(dòng)感地帶.但在這個(gè)場(chǎng)景中,這根本不是問(wèn)題.因?yàn)檫@個(gè)算法只是過(guò)濾一些號(hào)碼,漏網(wǎng)之魚(yú)會(huì)在Reduce階段進(jìn)行精確匹配時(shí)顧慮掉.

    這個(gè)方法改進(jìn)之后基本上完全回避了方法2的缺點(diǎn):

    1) 沒(méi)有大量的動(dòng)感地帶號(hào)碼發(fā)送到所有的Mapper節(jié)點(diǎn).
    2) 很多非動(dòng)感地帶號(hào)碼在Mapper階段就過(guò)濾了(雖然不是100%),避免了網(wǎng)絡(luò)帶寬的開(kāi)銷及延時(shí).


    繼續(xù)需要學(xué)習(xí)的地方:Bitmap的大小, Hash函數(shù)的多少, 以及存儲(chǔ)的數(shù)據(jù)的多少. 這3個(gè)變量如何取值才能才能在存儲(chǔ)空間與錯(cuò)誤率之間取得一個(gè)平衡.

    posted on 2013-01-31 18:24 paulwong 閱讀(489) 評(píng)論(0)  編輯  收藏 所屬分類: 分布式HADOOP云計(jì)算

    主站蜘蛛池模板: 在线日韩av永久免费观看| 18以下岁毛片在免费播放| 国产jizzjizz免费看jizz| 日韩亚洲产在线观看| 免费中文熟妇在线影片 | 国产精品亚洲色婷婷99久久精品| 免费观看成人毛片a片2008| 精品亚洲AV无码一区二区| 无人在线观看免费高清视频| 亚洲中文字幕无码中文| 永久黄网站色视频免费直播| 国产成人亚洲毛片| 亚洲中文字幕丝袜制服一区| 怡红院免费的全部视频| 亚洲人成依人成综合网| 我的小后妈韩剧在线看免费高清版 | 男人和女人高潮免费网站| 久久精品亚洲福利| 免费无码中文字幕A级毛片| 亚洲人成免费电影| 国产成人免费全部网站| 91av免费在线视频| 老汉色老汉首页a亚洲| 久久国内免费视频| 国产成人久久精品亚洲小说| 中文字幕亚洲日韩无线码| 性xxxx视频免费播放直播| 亚洲偷自拍另类图片二区| 亚洲高清免费视频| 久久久久国产精品免费免费不卡| 亚洲jjzzjjzz在线播放| 亚洲成AV人网址| 91热成人精品国产免费| 国产午夜亚洲精品不卡电影| 亚洲av中文无码乱人伦在线r▽| 亚洲视频免费在线看| 成年大片免费高清在线看黄| 中文字幕亚洲精品| 又粗又黄又猛又爽大片免费| 亚洲免费视频在线观看| 色天使亚洲综合一区二区|