CN104598567B - 一种基于Hadoop MapReduce编程框架的数据统计排重的方法 - Google Patents
一种基于Hadoop MapReduce编程框架的数据统计排重的方法 Download PDFInfo
- Publication number
- CN104598567B CN104598567B CN201510013399.1A CN201510013399A CN104598567B CN 104598567 B CN104598567 B CN 104598567B CN 201510013399 A CN201510013399 A CN 201510013399A CN 104598567 B CN104598567 B CN 104598567B
- Authority
- CN
- China
- Prior art keywords
- key
- data
- attribute
- value
- hadoop mapreduce
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
Abstract
本发明公开一种基于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节点的磁盘。
Description
技术领域
本发明涉及大规模数据处理的技术领域,具体地涉及一种基于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表,其占用的内存空间是无法预料的。所以有的计算节点会特别慢,当开辟内存过多时,会使计算节点宕机,最终也无法得到结果。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供一种基于HadoopMapReduce编程框架的数据统计排重的方法,其无需开辟过多的存储空间,就能够从容应对更大量数据的排重统计。
本发明的技术解决方案是:这种基于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排序;
(3)将步骤(2)的数据写回该map节点的磁盘。
本发明使用了MapReduce的key和value的划分机制,无需开辟过多的存储空间,不会过度依赖于内存,所以当遇到更大量的数据,通常是几个TB,几十个TB,也就是几个月的数据时,也可以从容应对。
另外,如图2、5所示,该方法还包括以下步骤:
(4)每个reduce计算节点从各个map节点取走属于该reduce计算节点的数据,对取回的所有数据按照key进行merger排序;
(5)相同key对应的value形成一个列表,并返回该列表的一个迭代子;
(6)对每个key对应的数据集列表进行合并处理;
(7)输出处理结果。
另外,如图6所示,所述步骤(1)还包括:对每个由object和attribute形成的key,将key相同的weight值相加。
相比于现有技术,该技术执行过程中不会过度依赖于内存,所以当遇到更大量的数据,通常是几个TB,几十个TB,也就是几个月的数据时,可以从容应对,仅仅是使用了MapReduce的key和value的划分机制,并没有开辟更多的内存空间。但使用hash表,就有可能因为有的对象的属性过多,需要开辟过多的存储空间,使得计算节点宕机也得不到计算结果。
以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属本发明技术方案的保护范围。
Claims (3)
1.一种基于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节点的磁盘。
2.根据权利要求1所述的基于Hadoop MapReduce编程框架的数据统计排重的方法,其特征在于:该方法还包括以下步骤:
(4)每个reduce计算节点从各个map节点取走属于该reduce计算节点的数据,对取回的所有数据按照key进行merger排序;
(5)相同key对应的value形成一个列表,并返回该列表的一个迭代子;
(6)对每个key对应的数据集列表进行合并处理;
(7)输出处理结果。
3.根据权利要求2所述的基于Hadoop MapReduce编程框架的数据统计排重的方法,其特征在于:所述步骤(1)还包括:对每个由object和attribute形成的key,将key相同的weight值相加。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510013399.1A CN104598567B (zh) | 2015-01-12 | 2015-01-12 | 一种基于Hadoop MapReduce编程框架的数据统计排重的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510013399.1A CN104598567B (zh) | 2015-01-12 | 2015-01-12 | 一种基于Hadoop MapReduce编程框架的数据统计排重的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104598567A CN104598567A (zh) | 2015-05-06 |
CN104598567B true CN104598567B (zh) | 2018-01-09 |
Family
ID=53124352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510013399.1A Active CN104598567B (zh) | 2015-01-12 | 2015-01-12 | 一种基于Hadoop MapReduce编程框架的数据统计排重的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104598567B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106372213B (zh) * | 2016-09-05 | 2019-05-03 | 天泽信息产业股份有限公司 | 一种位置分析方法 |
CN107506388A (zh) * | 2017-07-27 | 2017-12-22 | 浙江工业大学 | 一种面向Spark并行计算框架的迭代式数据均衡优化方法 |
CN110209656B (zh) * | 2019-04-26 | 2022-05-17 | 北京互金新融科技有限公司 | 数据处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915365A (zh) * | 2012-10-24 | 2013-02-06 | 苏州两江科技有限公司 | 基于Hadoop的分布式搜索引擎构建方法 |
CN103995827A (zh) * | 2014-04-10 | 2014-08-20 | 北京大学 | MapReduce计算框架中的高性能排序方法 |
CN104063230A (zh) * | 2014-07-09 | 2014-09-24 | 中国科学院重庆绿色智能技术研究院 | 基于MapReduce的粗糙集并行约简方法、装置及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8745014B2 (en) * | 2011-10-19 | 2014-06-03 | Pivotal Software, Inc. | Time series data mapping into a key-value database |
US9424274B2 (en) * | 2013-06-03 | 2016-08-23 | Zettaset, Inc. | Management of intermediate data spills during the shuffle phase of a map-reduce job |
-
2015
- 2015-01-12 CN CN201510013399.1A patent/CN104598567B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915365A (zh) * | 2012-10-24 | 2013-02-06 | 苏州两江科技有限公司 | 基于Hadoop的分布式搜索引擎构建方法 |
CN103995827A (zh) * | 2014-04-10 | 2014-08-20 | 北京大学 | MapReduce计算框架中的高性能排序方法 |
CN104063230A (zh) * | 2014-07-09 | 2014-09-24 | 中国科学院重庆绿色智能技术研究院 | 基于MapReduce的粗糙集并行约简方法、装置及系统 |
Non-Patent Citations (2)
Title |
---|
Hadoop系统map阶段的排序性能分析与优化;周扬等;《电脑知识与技术》;20140331;第10卷(第7期);第1410-1412页 * |
MapReduce中Combine优化机制的利用;贾欧阳等;《计算机时代》;20131231(第9期);第1-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104598567A (zh) | 2015-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105446979B (zh) | 数据挖掘方法和节点 | |
CN105389349B (zh) | 词典更新方法及装置 | |
US9325344B2 (en) | Encoding data stored in a column-oriented manner | |
CN106649401A (zh) | 分布式文件系统中的数据写入方法和装置 | |
CN110222029A (zh) | 一种大数据多维分析计算效率提升方法及系统 | |
CN104915717A (zh) | 数据处理方法、知识库推理方法及相关装置 | |
CN108650684A (zh) | 一种关联规则确定方法及装置 | |
CN104598567B (zh) | 一种基于Hadoop MapReduce编程框架的数据统计排重的方法 | |
US11899810B2 (en) | Systems and methods for determining database permissions | |
Tang et al. | An intermediate data partition algorithm for skew mitigation in spark computing environment | |
CN102915344B (zh) | 一种sql语句处理方法及装置 | |
CN111666468A (zh) | 一种基于团簇属性在社交网络中搜索个性化影响力社区的方法 | |
CN108415912A (zh) | 基于MapReduce模型的数据处理方法和设备 | |
CN110134646A (zh) | 知识平台服务数据存储与集成方法及系统 | |
CN107977504A (zh) | 一种非对称堆芯燃料管理计算方法、装置及终端设备 | |
CN117273954B (zh) | 基于大规模关系图谱的股权关系穿透方法、装置及设备 | |
CN113761390A (zh) | 一种用于属性亲密度的分析方法和系统 | |
CN109254962A (zh) | 一种基于t-树的索引优化方法及装置 | |
CN104794237B (zh) | 网页信息处理方法及装置 | |
CN111475511A (zh) | 基于树状结构的数据存储方法、访问方法、装置及设备 | |
CN110019783A (zh) | 属性词聚类方法及装置 | |
CN108763381A (zh) | 基于一致性哈希算法的分表方法及设备 | |
US11170025B1 (en) | Systems and methods for improving computational speed of planning by caching optimization in hypercubes | |
CN114637752A (zh) | 一种连接查询语句处理方法、装置、设备及存储介质 | |
CN106528849A (zh) | 面向完整历史记录的图查询开销方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |