<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階段進行Join,這樣運算量比較小.(這個適合被Join的數據比較小的情況下.)
    2) 壓縮字段,對數據預處理,過濾不需要的字段.
    3) 最后一步就是在Mapper階段過濾,這個就是Bloom Filter的用武之地了.也就是需要詳細說明的地方.


    下面就拿一個我們大家都熟悉的場景來說明這個問題: 找出上個月動感地帶的客戶資費的使用情況,包括接入和撥出.

    (這個只是我臆想出來的例子,根據實際的DB數據存儲結構,在這個場景下肯定有更好的解決方案,大家不要太較真哦)

    這個時候的兩個個數據集都是比較大的,這兩個數據集分別是:上個月的通話記錄,動感地帶的手機號碼列表.


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

    1)在 Reduce 階段,通過動感地帶號碼來過濾.

    優點:這樣需要處理的數據相對比較少,這個也是比較常用的方法.

    缺點:很多數據在Mapper階段花了老鼻子力氣匯總了,還通過網絡Shuffle到Reduce節點,結果到這個階段給過濾了.



    2)在 Mapper 階段時,通過動感地帶號碼來過濾數據.

    優點:這樣可以過濾很多不是動感地帶的數據,比如神州行,全球通.這些過濾的數據就可以節省很多網絡帶寬了.

    缺點:就是動感地帶的號碼不是小數目,如果這樣處理就需要把這個大塊頭復制到所有的Mapper節點,甚至是Distributed Cache.(Bloom Filter就是用來解決這個問題的)


    Bloom Filter就是用來解決上面方法2的缺點的.

    方法2的缺點就是大量的數據需要在多個節點復制.Bloom Filter通過多個Hash算法, 把這個號碼列表壓縮到了一個Bitmap里面. 通過允許一定的錯誤率來換空間, 這個和我們平時經常提到的時間和空間的互換類似.詳細情況可以參考:

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

    但是這個算法也是有缺陷的,就是會把很多神州行,全球通之類的號碼當成動感地帶.但在這個場景中,這根本不是問題.因為這個算法只是過濾一些號碼,漏網之魚會在Reduce階段進行精確匹配時顧慮掉.

    這個方法改進之后基本上完全回避了方法2的缺點:

    1) 沒有大量的動感地帶號碼發送到所有的Mapper節點.
    2) 很多非動感地帶號碼在Mapper階段就過濾了(雖然不是100%),避免了網絡帶寬的開銷及延時.


    繼續需要學習的地方:Bitmap的大小, Hash函數的多少, 以及存儲的數據的多少. 這3個變量如何取值才能才能在存儲空間與錯誤率之間取得一個平衡.

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

    主站蜘蛛池模板: 四虎成人精品在永久免费| 黄色a三级三级三级免费看| 久久精品亚洲AV久久久无码| 日韩内射激情视频在线播放免费 | 一级成人生活片免费看| 亚洲男人天堂2020| 女人被男人躁的女爽免费视频 | 亚洲一区二区三区自拍公司| 免费激情视频网站| h视频免费高清在线观看| 亚洲丶国产丶欧美一区二区三区| 亚洲午夜精品第一区二区8050| 成人奭片免费观看| 在线视频免费观看爽爽爽| 国产亚洲精品美女久久久久 | 国产免费AV片在线观看| 一级毛片aaaaaa视频免费看| 亚洲AⅤ男人的天堂在线观看| 亚洲午夜一区二区三区| 亚洲成无码人在线观看| 亚洲精品国产精品乱码不卞| 日韩精品免费电影| 日韩免费三级电影| 韩国欧洲一级毛片免费| 四虎影视www四虎免费| 成年午夜视频免费观看视频| 国产拍拍拍无码视频免费| 国产又黄又爽又大的免费视频| 亚洲国产综合精品中文第一| 亚洲热线99精品视频| 亚洲中文字幕无码一久久区| 亚洲中文字幕在线乱码| 亚洲精品成人无限看| 亚洲狠狠婷婷综合久久久久| 精品亚洲一区二区| 亚洲AV成人一区二区三区AV| 亚洲视频在线免费播放| 最新精品亚洲成a人在线观看| JLZZJLZZ亚洲乱熟无码| 亚洲中文字幕无码永久在线 | 人妻无码久久一区二区三区免费|