MapReduce 數據分布傾斜性

          數據分布傾斜性指的是數據分布過度集中于數據空間的某端,造成“頭重腳輕”或者“比薩斜塔”等不均勻的分布特點。數據分布傾斜性將造成運算效率上的“瓶頸”和數據分析結果的“以偏概全”。


          效率上的“瓶頸”

          假如在大型商場中,共有A,B1,B2..B9十家店鋪,其中A店鋪中有99W商品,B1,B2.B9這九家店鋪分別有1W商品。我們要統計商場中商品總數,計算初,采用HASHMAP作為存儲結構,其中Key:店鋪 Value:商品。我們的計算過程是先統計每個店鋪的商品總數,最后將結果累加。可以發現,由于A99W商品,按照1+1的累積方式(假如1+1耗時1秒),我們要加99W1才能得到A店鋪的商品總數(總耗時99W秒),而B1,B2.B9只需分別累加1W1(分別耗時1W秒),而為了得到商場中的商品總數,我們必須等待所有店鋪都分別累計結束才能處理總和,顯而易見,此時運算瓶頸便集中在A店鋪的商品累計上。

          這類狀況經常發生在分布式運算過程中,比如Hadoop Job計算,因為map/reduce 過程中是以Key-value形式來處理數據,假如某key下的數據量太大,會導致整個計算過程中move/shuffle/sort的耗時遠遠高于其他key,因此該Key變成為效率“瓶頸”。一般解決辦法是,自定義partitioner,對所有的Value進行自定義分組,使得每組的量較平均,從而解決時間瓶頸問題。


          數據分析結果的“以偏概全”

          同樣使用上述的“商場”案例,并且在此基礎上我們假設A店鋪,B9店鋪是賣低端商品,而B1,B2..B8是賣高端商品,銷量較小。如果我們要根據商品銷售狀況分析店鋪在買家當中的受歡迎程度。由于A店鋪本身商品量大,而且定位的銷售價位是屬于薄利多銷,如果只從銷售量的考慮,我們會以為A店鋪在商場中是最受買家歡迎的,造成“片面”的分析結果。

          其實,遇到這種情況,我們首先的分析賣家性質和買家性質,并且使用相對量來作為評估值,比如A店鋪賣低端商品,日銷售量1W商品,1W/99W<1%, B9店鋪賣低端商品,日銷售量5K商品,5K/1W=50%,所以在低端買家中,低端商品店鋪B9應該是最受歡迎的。

          posted on 2011-12-22 10:17 Ric Dong 閱讀(328) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2025年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          導航

          統計

          留言簿

          文章檔案(2)

          搜索

          最新評論

          主站蜘蛛池模板: 宜宾市| 彭山县| 大竹县| 嘉义县| 霍林郭勒市| 开封县| 北安市| 宁明县| 皮山县| 察哈| 长汀县| 郯城县| 正宁县| 乾安县| 广灵县| 玉屏| 陕西省| 沙坪坝区| 沐川县| 蓬莱市| 河池市| 厦门市| 沧源| 澄江县| 青田县| 晋州市| 云阳县| 怀安县| 西昌市| 塔河县| 紫阳县| 集安市| 荣昌县| 红桥区| 青浦区| 蚌埠市| 望城县| 遂溪县| 自贡市| 周至县| 广元市|