
随着传输数据信息量的急速下降,越来越多的人起初关注存储数据的削减方式。数据压缩、单案例存储和重复数据删除等都是经常使用的内存数据减少技术。
重复数据删除往往是指清除冗余子文件。不同于压缩,重复数据删除针对数据本来并没有改变,只是减轻了同样的数据占用的储存容量。重复数据删除在增加内存、降低网络带宽方面有着显著的劣势,并对扩展性有所帮助。
举个简单的事例:在专门为联通运营商定制的呼叫详单去重应用程序中,我们就可以看见删除重复数据的影子。同样的,对于包括相同数据包的通信网络,我们可以使用这些科技来进行改进。
在存储架构中,删除重复数据的一些常见的方式包含:哈希、二进制比较和增量差分。在
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的方式,内容如下:
要切记使用这些方式中的一些关键点:
策略3:使用HDFS,MapReduce和存储控制器

由Netapp的工程师AshishKathpal、GauravMakkar以及Mathew John三人联合mapreduce数据去重原理,在一篇名为“
在后期处理重复数据删除的分布式重复测试方法”的文章中,提出借助使用HadoopMapReduce的重复测试模式来代替Netapp原有的重复测试环节,文中提到的基于重复测试的Hadoop工作流包含如下几个环节:
数据指纹是指内存系统中文件块经过计算后的哈希索引,通常来说数据指纹要比它代表的数据块体积小的多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任务在处理那个配对非常,这样就无需在多个节点上进行同样的配对非常。
原文链接:
Data deduplication tactics with HDFS and MapReduce(编译/兴宝 审校/仲浩)
来源URL:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-124116-1.html
还有人的因素更重要
呵呵