<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ì)算

    主站蜘蛛池模板: 亚洲kkk4444在线观看| 亚洲日韩AV一区二区三区中文| 国产免费爽爽视频在线观看 | 无码人妻久久一区二区三区免费 | 丝瓜app免费下载网址进入ios| 亚洲综合无码一区二区三区| 精品国产麻豆免费网站| 精品多毛少妇人妻AV免费久久| 亚洲成av人片不卡无码| 亚洲国产成人久久精品99 | 亚洲狠狠久久综合一区77777| 免费看的黄色大片| 国产成人无码区免费内射一片色欲 | 无遮挡国产高潮视频免费观看| 午夜影视日本亚洲欧洲精品一区| 在线a人片天堂免费观看高清| 中文字幕久精品免费视频| 亚洲国产精品99久久久久久| 亚洲国产高清视频| 亚洲国产精品一区二区第四页| 免费在线观看视频网站| 97超高清在线观看免费视频| 亚洲色欲色欲www在线播放| 亚洲精品高清久久| 亚洲国产成人久久精品99| 成年人免费视频观看| 十九岁在线观看免费完整版电影| 曰批免费视频播放在线看片二 | 亚洲噜噜噜噜噜影院在线播放| 国产成人综合亚洲AV第一页| 成在人线AV无码免费| 99热这里有免费国产精品| 久青草视频97国内免费影视| 久久精品国产亚洲av瑜伽| 亚洲不卡视频在线观看| 亚洲大成色www永久网站| 久久精品国产亚洲精品| 国产一级淫片a免费播放口之| 九九精品免费视频| 最近中文字幕高清免费中文字幕mv| 三年片免费高清版 |