专栏首页华章科技巧用MapReduce+HDFS,海量数据去重的五大策略

巧用MapReduce+HDFS,海量数据去重的五大策略

随着存储数据信息量的飞速增长,越来越多的人开始关注存储数据的缩减方法。数据压缩、单实例存储和重复数据删除等都是经常使用的存储数据缩减技术。

重复数据删除往往是指消除冗余子文件。不同于压缩,重复数据删除对于数据本身并没有改变,只是消除了相同的数据占用的存储容量。重复数据删除在减少存储、降低网络带宽方面有着显著的优势,并对扩展性有所帮助。

举个简单的例子:在专门为电信运营商定制的呼叫详单去重应用程序中,我们就可以看到删除重复数据的影子。同样的,对于包含相同数据包的通信网络,我们可以使用这种技术来进行优化。

在存储架构中,删除重复数据的一些常用的方法包括:哈希、二进制比较和增量差分。在HadoopSphere这篇文章中,将专注于如何利用MapReduce和HDFS来消除重复的数据。(下面列出的方法中包括一些学者的实验方法,因此把术语定义为策略比较合适)。

策略1:只使用HDFS和MapReduce

Owen O’Malley在一个论坛的帖子中建议使用以下方法:

让你的历史数据按照MD5值进行排序。 运行一个MapReduce的作业,将你的新数据按照MD5进行排序。需要注意的是:你要做所有数据的整体排序,但因为MD5是在整个密钥空间中是均匀分布的,排序就变得很容易。

基本上,你挑选一个reduce作业的数量(如256),然后取MD5值的前N位数据来进行你的reduce作业。由于这项作业只处理你的新数据,这是非常快的。 接下来你需要进行一个map-side join,每一个合并的输入分块都包含一个MD5值的范围。RecordReader读取历史的和新的数据集,并将它们按照一定方式合并。(你可以使用map-side join库)。你的map将新数据和旧数据合并。这里仅仅是一个map作业,所以这也非常快。

当然,如果新的数据足够小,你可以在每一个map作业中将其读入,并且保持新记录(在RAM中做了排序)在合适的数量范围内,这样就可以在RAM中执行合并。这可以让你避免为新数据进行排序的步骤。类似于这种合并的优化,正是Pig和Hive中对开发人员隐藏的大量细节部分。

策略2:使用HDFS和Hbase

在一篇名为“工程云系统中一种新颖的删除重复数据技术”的论文中,Zhe Sun, Jun Shen, Jianming Young共同提出了一种使用HDFS和Hbase的方法,内容如下:

使用MD5和SHA-1哈希函数计算文件的哈希值,然后将值传递给Hbase

将新的哈希值与现有的值域比较,如果新值已经存在于Hbase去重复表中,HDFS会检查链接的数量,如果数量不为零时,哈希值对应的计数器将增加1。如果数量是零或哈希值在之前的去重复表中不存在,HDFS会要求客户端上传文件并更新文件的逻辑路径。

HDFS将存储由用户上传的源文件,以及相应的链接文件,这些链接文件是自动生成的。链接文件中记录了源文件的哈希值和源文件的逻辑路径。

要注意使用这种方法中的一些关键点

文件级的重复数据删除需要保持索引数量尽可能小,这样可以有高效的查找效率。

MD5和SHA-1需要结合使用从而避免偶发性的碰撞。

策略3:使用HDFS,MapReduce和存储控制器

由Netapp的工程师AshishKathpal、GauravMakkar以及Mathew John三人联合,在一篇名为“在后期处理重复数据删除的分布式重复检测方式”的文章中,提出通过使用HadoopMapReduce的重复检测机制来替代Netapp原有的重复检测环节,文中提到的基于重复检测的Hadoop工作流包含如下几个环节:

将数据指纹(Fingerprint)由存储控制器迁移到HDFS

生成数据指纹数据库,并在HDFS上永久存储该数据库

使用MapReduce从数据指纹记录集中筛选出重复记录,并将去重复后的数据指纹表保存回存储控制器。

数据指纹是指存储系统中文件块经过计算后的哈希索引,通常来说数据指纹要比它代表的数据块体积小的多,这样就可以减少分布式检测时网络中的数据传输量。

策略4:使用Streaming,HDFS,MapReduce

对于Hadoop和Streaming的应用集成,基本上包含两种可能的场景。以IBM Infosphere Streams和BigInsights集成为例,场景应该是:

1. Streams到Hadoop的流程:通过控制流程,将Hadoop MapReduce模块作为数据流分析的一部分,对于Streams的操作需要对更新的数据进行检查并去重,并可以验证MapReduce模型的正确性。

众所周知,在数据摄入的时候对数据进行去重复是最有效的,因此在Infosphere Streams中对于某个特定时间段或者数量的记录会进行去重复,或者识别出记录的增量部分。接着,经过去重的数据将会发送给Hadoop BigInsights用于新模型的建立。

2. Hadoop到Streams的流程:在这种方式中,Hadoop MapReduce用于移除历史数据中的重复数据,之后MapReduce模型将会更新。MapReduce模型作为Streams中的一部分被集成,针对mid-stream配置一个操作符(operator),从而对传入的数据进行处理。

策略5:结合块技术使用MapReduce

在莱比锡大学开发的一个原型工具Dedoop(Deduplication with Hadoop)中,MapReduce应用于大数据中的实体解析处理,到目前为止,这个工具囊括了MapReduce在重复数据删除技术中最为成熟的应用方式。

基于实体匹配的分块是指将输入数据按照类似的数据进行语义分块,并且对于相同块的实体进行限定。

实体解析处理分成两个MapReduce作业:分析作业主要用于统计记录出现频率,匹配作业用于处理负载均衡以及近似度计算。另外,匹配作业采用“贪婪模式”的负载均衡调控,也就是说匹配任务按照任务处理数据大小的降序排列,并做出最小负载的Reduce作业分配。

Dedoop还采用了有效的技术来避免多余的配对比较。它要求MR程序必须明确定义出哪个Reduce任务在处理哪个配对比较,这样就无需在多个节点上进行相同的配对比较。

END

版权声明:

转载文章均来自公开网络,仅供学习使用,不会用于任何商业用途,如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜,联系邮箱:holly0801@163.com。转载大数据公众号文章请注明原文链接和作者,否则产生的任何版权纠纷与大数据无关。

本文分享自微信公众号 - 大数据(hzdashuju)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-06-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 数据越多越焦虑?因为你也走进了这个思考误区

    从互联网时代开始,尤其到了移动互联网以及社交媒体时代,人类社会的数据增长进入到一个前所未有的爆发阶段。麦肯锡将大数据视为下一个创新、竞争、生产力提高的前沿。世界...

    华章科技
  • 35所高校要开设大数据专业!你怎么看?

    各大高校紧锣密鼓启动大数据人才培养,缘于大数据时代催生的大量相关人才缺口。其实就是一个问题,市场的需求在驱动。

    华章科技
  • 大数据三问:大数据“热”的冷思考

    人类对世界的认识,首先是感知信息。但问题在于,人类许多方面的感知能力却不如普通动物,比如人的嗅觉不如狗,听觉不如猫,视觉不如鹰等等。

    华章科技
  • 车品觉:不懂商业就别谈数据分析

    目前有些人关心行为数据,也有些人关心商业数据,但较少人把行为数据和商业数据联系起来看。大家往往只单纯看某一端数据。但是看数据走火入魔的人会明白,每个数据,就像散...

    机器学习AI算法工程
  • 大数据要学哪些技术大数据工程师必备技能有哪些?

    HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。

    用户2292346
  • 大数据技术栈详解

    相信很多学Java的同学都有想转大数据或者学大数据的想法,但是一看到网上那些大数据的技术栈,就一脸懵逼,什么Hadoop、HDFS、MapReduce、Hive...

    林老师带你学编程
  • 大数据人才都去哪儿了?

    大数据时代已经来了,许多企业希望将大数据用起来,带动企业的经营,但不知从哪里着手。它们找不到大数据与业务结合的突破口。而一些真正将大数据应用于实战的企业,却在应...

    CDA数据分析师
  • 张涵诚:大数据-智慧招商新思路

    数据猿导读 马云曾说,过去的招商是靠税收、土地和三通一平的优惠政策,未来的招商则需要大数据的支撑。那么,如何认识大数据时代下招商引资工作的新变化,以及政府部门如...

    数据猿
  • 平均年薪35W,2018年大数据AI发展趋势分析

    近几年,大数据不可谓不火,尤其是2017年,发展大数据产业被写入政府工作报告中,大数据开始不只是出现在企业的战略中,也开始出现在政府的规划之内,可以说是互联网世...

    哲洛不闹
  • 凭什么年薪35W,2018年大数据AI浪潮应用趋势?

    芋道源码

扫码关注云+社区

领取腾讯云代金券