基于Hadoop框架的大规模对象识别方法技术

技术编号:11401624 阅读:74 留言:0更新日期:2015-05-03 17:43
本发明专利技术涉及一种基于Hadoop框架的大规模对象识别方法。该方法包括:步骤10、读入所有预定义的匹配规则;步骤20、输入作为对象描述数据的记录;步骤30、对于每个匹配规则,如果记录具有该匹配规则所需的所有属性,通过Map作业根据该记录输出键值对;步骤40、相同键的键值对通过Reduce作业输出以相应的记录组为值的键值对;步骤50、输出以记录组为值且以该记录组中的记录id分别为键的键值对,对于同一记录id所对应的记录组进行传递闭包处理得到新的记录组;步骤60、反复进行步骤50,直至记录组没有改变。本发明专利技术基于Hadoop框架的大规模对象识别方法采用大规模并行的策略,解决了面对海量数据的匹配效率问题;通过预定义的匹配规则,规避了数据缺少与错误的问题。

【技术实现步骤摘要】
基于Hadoop框架的大规模对象识别方法
本专利技术涉及数据处理
,尤其涉及一种基于Hadoop框架的大规模对象识别方法。
技术介绍
网络技术飞速发展的今天,大量网络应用和产品的使用产生了海量的数据,当我们需要对数据进行清洗、集成时,就需要识别出这些数据中哪些记录是描述同一现实对象的。举个例子:各个电商销售商品时通常会记录消费者本身的信息(姓名、性别、年龄、电话、邮箱、住址等)以及商品的信息(如商品名称、类别、单价、数量等),当需要分析消费者的消费行为时,首要的事情时根据记录中消费者的信息来识别哪些记录是隶属于同一现实消费者,而通常不同的电商记录的消费者信息内容会有所不同,或者同一现实消费者在各电商网站注册的信息有差异,部分数据会缺少甚至错误,因此不能通过简单的去重来识别同一消费者。对象识别又称记录匹配,其目的是从(不可靠的)各种数据源中识别出表示同一现实对象的记录。对象识别在数据清洗、数据集成、数据分析等应用中具有重要作用。在实际应用中,一个对象的信息通常需要与其他数据源的信息进行关联。然而,其他数据源中表示同一对象的信息可能存在错误或具有不同的表示形式。因此,对象识别并不简单,特别是在互联网技术的迅猛发展的今天,数据在急剧膨胀,采用传统的方法从海量数据中识别出哪些对象是相同(或相似的)几乎不可行,相关问题亟需解决。其中包含两个关键问题:一是针对数据缺少与错误的情况如何识别同一对象;二是面对海量的数据如何解决匹配效率问题,传统的策略面对海量数据时已无能为力。另一方面,Hadoop框架上常使用MapReduce并行处理策略来并行处理大规模的数据集。Hadoop实现了分布式文件系统(HadoopDistributedFileSystem,简称HDFS),Hadoop框架最核心的设计就是HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。MapReduce是谷歌提出的分布式并行计算框架,一个MapReduce作业分2个步骤:Map(映射)和Reduce(化简)。参见图1,其为举例说明现有技术中Hadoop框架上并行处理MapReduce作业的流程图。Hadoop框架会启动多个节点(根据系统资源和任务等因素)来并行处理MapReduce作业。在Map端Hadoop将输入文件(比如信息记录文件)进行切片,每个切片独立的分给一个节点处理,称为一个Map作业,每个Map作业按顺序接收一组键值对——key1/value1的内容并处理,输出结果为另一组键值对——key2/value2。所有Map作业都结束后系统将会对所有的输出key2/value2按key2进行打乱、排序、分区,并将分区后的结果传送到不同的Reduce端处理。Reduce作业每次处理一个key2以及key2对应的所有value2,并输出一个或多个或零个的键值对——key3/value3。所有Reduce作业处理完成后整个MapReduce作业完成。
技术实现思路
本专利技术的目的在于提供一种基于Hadoop框架的大规模对象识别方法,能够提高面对海量数据的匹配效率。为实现上述目的,本专利技术提供一种基于Hadoop框架的大规模对象识别方法,包括:步骤10、读入所有预定义的匹配规则;步骤20、输入作为对象描述数据的记录,记录的数据格式包括记录id及相应的属性;步骤30、对于每个匹配规则,如果记录具有该匹配规则所需的所有属性,通过Map作业根据该记录输出键值对,其中,键为该记录的该所有属性的内容,值为该记录的记录id;步骤40、对于步骤30所输出的键值对,相同键的键值对通过Reduce作业输出以相应的记录id的集合为值的键值对,将该记录id的集合称为记录组;步骤50、输出以记录组为值且以该记录组中的记录id分别为键的键值对,对于同一记录id所对应的记录组进行传递闭包处理得到新的记录组;步骤60、反复进行步骤50,直至记录组没有改变。其中,步骤30还包括:如果记录不匹配任一匹配规则,通过Map作业根据该记录输出防止该记录丢失的键值对,其中,值为该记录的记录id。其中,步骤50包括:步骤501、第一Map阶段,对于记录组及其包含的记录id,通过Map作业广播记录id所属的记录组,输出以记录组为值且以该记录组中的记录id分别为键的键值对;步骤502、第一Reduce阶段,通过Reduce作业处理步骤501输出的键值对;如果记录id同时属于多个记录组,合并该多个记录组成为新的记录组,标记该新的记录组的状态信息为新增,标记该多个记录组的状态信息为删除;如果记录id只属于一个记录组,标记该记录组的状态信息为保留;步骤503、第二Map阶段,读取步骤502的输出结果,通过Map作业输出以记录组为键并且以该记录组的状态信息为值的键值对;步骤504、第二Reduce阶段,通过Reduce作业根据每个记录组的状态信息对记录组执行新增、删除或保留操作。其中,步骤502包括:如果记录id同时属于多个记录组,将该多个记录组合并去重后生成新的记录组,新的记录组的作为键输出,状态信息新增作为对应的值输出;对每个旧的记录组,该旧的记录组作为键输出,状态信息删除作为对应的值输出;如果记录id只属于一个记录组,该记录组作为键输出,状态信息保留作为对应的值输出。其中,步骤504包括:如果状态信息中含有新增,输出此记录组;如果状态信息中含有删除,忽略此记录组;如果状态信息中含有保留,输出此记录组。其中,步骤60中判断记录组没有改变的条件为记录组的数量保持不变。其中,步骤60中判断记录组没有改变的条件为没有处于删除状态的记录组出现。其中,该匹配规则包括:匹配规则的数据格式包括规则id及待比较的属性列的列表;该匹配规则的含义为,对于任意两条记录,如果待比较的属性都不为空且相等,则称该两条记录匹配规则成功。其中,对于多条匹配规则,任意两条记录满足任一条规则即称该两条记录匹配规则成功。其中,如果第一规则判定第一记录和第二记录为同一对象,第二规则判定该第二记录和第三记录为同一对象,则该第一记录、第二记录和第三记录为同一对象。综上所述,本专利技术基于Hadoop框架的大规模对象识别方法采用大规模并行的策略,解决了面对海量数据的匹配效率问题;通过预定义的匹配规则,规避了数据缺少与错误的问题。附图说明图1为现有技术中Hadoop框架上并行处理MapReduce作业的流程图;图2为本专利技术基于Hadoop框架的大规模对象识别方法一较佳实施例的流程图。具体实施方式下面结合附图,通过对本专利技术的具体实施方式详细描述,将使本专利技术的技术方案及其有益效果显而易见。参见图2,其为本专利技术基于Hadoop框架的大规模对象识别方法一较佳实施例的流程图。该基于Hadoop框架的大规模对象识别方法主要包括:步骤10、读入所有预定义的匹配规则;步骤20、输入作为对象描述数据的记录,记录的数据格式包括记录id及相应的属性;步骤30、对于每个匹配规则,如果记录具有该匹配规则所需的所有属性,通过Map作业根据该记录输出键值对,其中,键为该记录的该所有属性的内容,值为该记录的记录id;步骤40、对于步骤30所输出的键值对,相同键的键值对通过Reduce作业输出以相应的记录id的集合为值的键值对,本文档来自技高网
...

【技术保护点】
一种基于Hadoop框架的大规模对象识别方法,其特征在于,包括:步骤10、读入所有预定义的匹配规则;步骤20、输入作为对象描述数据的记录,记录的数据格式包括记录id及相应的属性;步骤30、对于每个匹配规则,如果记录具有该匹配规则所需的所有属性,通过Map作业根据该记录输出键值对,其中,键为该记录的该所有属性的内容,值为该记录的记录id;步骤40、对于步骤30所输出的键值对,相同键的键值对通过Reduce作业输出以相应的记录id的集合为值的键值对,将该记录id的集合称为记录组;步骤50、输出以记录组为值且以该记录组中的记录id分别为键的键值对,对于同一记录id所对应的记录组进行传递闭包处理得到新的记录组;步骤60、反复进行步骤50,直至记录组没有改变。

【技术特征摘要】
1.一种基于Hadoop框架的大规模对象识别方法,其特征在于,包括:步骤10、读入所有预定义的匹配规则;步骤20、输入作为对象描述数据的记录,记录的数据格式包括记录id及相应的属性;步骤30、对于每个匹配规则,如果记录具有该匹配规则所需的所有属性,通过Map作业根据该记录输出键值对,其中,键为该记录的该所有属性的内容,值为该记录的记录id;步骤40、对于步骤30所输出的键值对,相同键的键值对通过Reduce作业输出以相应的记录id的集合为值的键值对,将该记录id的集合称为记录组;步骤50、输出以记录组为值且以该记录组中的记录id分别为键的键值对,对于同一记录id所对应的记录组进行传递闭包处理得到新的记录组;步骤60、反复进行步骤50,直至记录组没有改变;其中,步骤50包括:步骤501、第一Map阶段,对于记录组及其包含的记录id,通过Map作业广播记录id所属的记录组,输出以记录组为值且以该记录组中的记录id分别为键的键值对;步骤502、第一Reduce阶段,通过Reduce作业处理步骤501输出的键值对;如果记录id同时属于多个记录组,合并该多个记录组成为新的记录组,标记该新的记录组的状态信息为新增,标记该多个记录组的状态信息为删除;如果记录id只属于一个记录组,标记该记录组的状态信息为保留;步骤503、第二Map阶段,读取步骤502的输出结果,通过Map作业输出以记录组为键并且以该记录组的状态信息为值的键值对;步骤504、第二Reduce阶段,通过Reduce作业根据每个记录组的状态信息对记录组执行新增、删除或保留操作。2.根据权利要求1所述的基于Hadoop框架的大规模对象识别方法,其特征在于,步骤30还包括:如果记录不匹配任一匹配规则,通过Map作业根据该记录输出防止该记录丢...

【专利技术属性】
技术研发人员:王明兴吴颖徽马帅汤南贾西贝
申请(专利权)人:深圳市华傲数据技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1