[發明專利]一種基于HadoopMapReduce編程框架的數據統計排重的方法有效
| 申請號: | 201510013399.1 | 申請日: | 2015-01-12 |
| 公開(公告)號: | CN104598567B | 公開(公告)日: | 2018-01-09 |
| 發明(設計)人: | 李鵬 | 申請(專利權)人: | 北京中交興路車聯網科技有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京和信華成知識產權代理事務所(普通合伙)11390 | 代理人: | 胡劍輝 |
| 地址: | 101111 北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 hadoop mapreduce 編程 框架 數據 統計 方法 | ||
技術領域
本發明涉及大規模數據處理的技術領域,具體地涉及一種基于Hadoop MapReduce編程框架的數據統計排重的方法,適用于在Hadoop上進行大規模數據的屬性統計。
背景技術
對于大規模數據的屬性統計,現有的解決方法通常會使用散列表,也叫hash表,對相同的key統計其各個屬性出現的次數,或者計算各個屬性對應的權重之和。
其計算過程為將object劃分key,將object對應的所有的attribute和weight劃分為value。對于數據集中所有相同的object,將它們所有相同attribute的weight值相加,并將所有attribute與weight之和使用hash表存儲于內存中。如圖3所示,由于有裝載因子限制,其中會有空的存儲空間。
這種方法存在以下不足:
1、hash表在內存中開辟的空間需要根據裝載因子確定,通常裝載因子都會小于1,Java的HashMap的裝載因子默認為0.75。這意味著存儲75條數據就需要開辟100條數據所占用的空間。
2、在上述過程中使用的存儲空間全部在內存中,如果裝載量比例大于裝載因子,hash表會重新調整存儲空間。由于該操作通常應用于一些屬性的量不確定的對象,例如圖4,比如一個用戶在搜索引擎中搜索的關鍵詞、一輛車經過的地理位置信息等等。在這些例子中有的對象的屬性量分布不均勻。有的用戶搜索的關鍵詞非常多,而有的就比較少。尤其是將一個用戶一個月的數量全部統計時,面臨的完全是TB級的數據。如果使用hash表,其占用的內存空間是無法預料的。所以有的計算節點會特別慢,當開辟內存過多時,會使計算節點宕機,最終也無法得到結果。
發明內容
本發明的技術解決問題是:克服現有技術的不足,提供一種基于Hadoop MapReduce編程框架的數據統計排重的方法,其無需開辟過多的存儲空間,就能夠從容應對更大量數據的排重統計。
本發明的技術解決方案是:這種基于Hadoop MapReduce編程框架的數據統計排重的方法,該方法使用Hadoop的MapReduce的key和value的劃分機制,包括以下步驟:
(1)每個map分別處理各自分區的數據,將數據對象object和其對應的每個attribute分別結合,形成不同的關鍵詞key;將每個屬性attribute對應的權重weight劃分為其與object結合形成的key的權值value,從而形成key/value對;
(2)按照key將數據劃分到不同的reduce分區,并對不同的reduce分區的數據分別按照key排序;
(3)將步驟(2)的數據寫回該map節點的磁盤。
本發明使用了MapReduce的key和value的劃分機制,無需開辟過多的存儲空間,不會過度依賴于內存,所以當遇到更大量的數據,通常是幾個TB,幾十個TB,也就是幾個月的數據時,可以從容應對。
附圖說明
圖1為規整數據。
圖2為根據本發明的MapReduce的執行示意圖。
圖3為現有技術的計算方法的示意圖。
圖4為不規整數據。
圖5為根據本發明的Map的過程示意圖。
圖6為根據本發明的Reduce的過程示意圖。
具體實施方式
本發明是一種Hadoop的MapReduce設計模式,適用于在Hadoop上進行大規模數據屬性統計(只適用于專利中遇到的統計情景)。不同于普通利用字典的方法,巧妙利用Hadoop的MapReduce特性,對單個對象進行大量屬性的統計。
本發明所面對的情景如圖1所示(后續圖中分別使用O代表object,A代表attribute,W代表weight),即統計每個對象所對應的所有出現的屬性的總權重。
如圖2所示,這種基于Hadoop MapReduce編程框架的數據統計排重的方法,該方法使用Hadoop的MapReduce的key和value的劃分機制,包括以下步驟:
(1)每個map分別處理各自分區的數據,將數據對象object和其對應的每個attribute分別結合,形成不同的關鍵詞key;將每個屬性attribute對應的權重weight劃分為其與object結合形成的key的權值value,從而形成key/value對;
(2)按照key將數據劃分到不同的reduce分區,并對不同的reduce分區的數據分別按照key排序;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京中交興路車聯網科技有限公司,未經北京中交興路車聯網科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510013399.1/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種海量GPS數據存儲的方法及裝置
- 下一篇:搜索方法及裝置





