摘 要:重复数据删除技术和云计算技术正在快速发展,但是Hadoop系统也仍然存在一些影响系统归档处理效率的因素。针对这个问题,文章提出一种新的增量指纹算法和改进TTTD算法——TDOB,并将这类算法应用到Hadoop分布式系统中,分析重复数据删除技术在Hadoop中的应用。
关键词:Hadoop;重复数据删除技术;TDOB算法
中图分类号:TP309.3 文献标识码:A 文章编号:2096-4706(2019)03-0142-03
Research on Duplicate Data Deletion Technology Based on Hadoop
GUO Qiang
(Department of Management,Liaoning Normal University Haihua College,Shenyang 110167,China)
Abstract:Duplicate data deletion technology and cloud computing technology are developing rapidly,but there are still some factors that affect the efficiency of archiving processing in Hadoop system. In order to solve this problem,a new incremental fingerprint algorithm and an improved TTTD algorithm——TDOB are proposed and applied to Hadoop distributed system. The application of repeated data deletion in Hadoop is analyzed.
Keywords:Hadoop;repeat data delete technology;TDOB algorithm
0 引 言
重復数据删除技术是数据清理中的一种技术形式,也属于数据挖掘的一种,这项技术的应用能够在一定程度上删除掉重复的数据信息,保证数据信息的正确率。重复数据删除技术作为一种处理数据信息的有效技术形式得到了人们的关注,但是其中脏数据的处理比较麻烦,是重复数据删除技术应用的难点问题。在这样的需求下出现了Hadoop数据删除处理模式,这类模式能够允许用户快速编写出高效并行代码,实现对数据的线性拓展。因此,文章就基于Hadoop的重复数据删除技术应用问题展开探究。
1 重复数据删除技术
随着企业信息量的不断增加,企业发展对数据信息传输率也提出了更高的要求,在这样的发展要求下数据中心面临大量存储空间和高宽带网络信息传输的双重挑战。有关学者研究提出了重复数据删除技术。重复数据删除技术是在现有存储技术的基础上发展起来的一种技术形式,和以往的数据压缩技术相比,重复数据删除技术在使用的过程中能够删除数据系统中冗杂的数据信息。
按照重复数据删除操作力度的不同,可以将重复数据删除具体分为文件级、数据块级、字节级三种类型的重复数据删除。
第一,文件级重复数据删除。重复数据删除技术的去重效率和检测重复数据的粒度存在密切的关联,在一般情况下,处理的粒度越精细,删除的冗余信息也将会越多,数据信息存储效率也会在最大限度上得到提升。文件级的删除是对需要存储文件的匹配和查重,在具体研究中以文件粒度作为基本处理对象,在由哈希算法计算得到指纹信息之后,将指纹和已有的文件指纹库进行匹配分析,在匹配分析之后系统会仅仅保存一个指针来代表文件,如果匹配失败则会对这个文件进行存储处理。在应用这种方法的时候不需要对文件进行数据库的划分,在一定程度上降低了CPU和RAM的开销,具有操作简单、方便、快捷的特点。第二,数据块级重复数据删除技术。数据块级的删除主要是对存储的数据进行分块,是存储唯一性的数据段。这类技术会对文件按照数据块粒度进行划分,借助哈希函数来获得这个数据块的指纹。第三,字节删除。字节级删除主要是针对字节进行查重检测。重复数据删除技术凭借自身数据缩减的优势能够实现对现有存储系统的改进和优化,进而有效消除冗杂的数据信息的,提升整个系统存储空间的资源利用率。
2 Hadoop平台关键技术
2.1 Hadoop平台的基本介绍
Hadoop是一个在大型集群廉价硬件设备上运行的分布式计算系统,具体由Hadoop Common、HDFS和Map-Reduce组成。其中,Hadoop Common是Hadoop的核心,也是其他子项目产生和发展的根基,为其他子项目的有效应用提供重要工具支持。HDFS具有高伸缩性、高容错性的优势,在使用的过程中运行用户部署在一般的PC机上,在无形中节省了资源。MapReduce分布式编程模型允许开发人员在不了解底层具体细节的情况下进行分布开发,继而轻松组织各类计算机资源,打造分布式信息处理平台,并应用分布式集群计算机系统来实现对大量数据信息的处理。
HDFS的处理流程如下:首先,Client生成对象实例,结合实例打开文件。其次,DistributedFileSystem向Name-Node发出请求,掌握数据模块基本信息。再次,在获取数据位置信息之后生成对象实例,读取文件内容。Client向DFSInputStream发出读取数据的的调用命令。最后,在收到命令指令之后读取数据信息。
HDFS的文件写入流程如下:首先,应用HDFS系统支持下的客户端开发库来向远程系统发送RPS请求。其次,NameNode在检查文件被创立之后要对文件进行单独记录,从而使得整个系统避免出现客户端非正常的情况。接着,在客户端开始写入文件的时候开发库Clinet会把文件具体划分为多个类型,将这些文件分别存储到指定的文件列表中。最后,在DateNode中写入packet之后返回信息,通过管道将各类信息传递到客户端中。
2.2 MapReduce(MR)的计算
MR能够为Hadoop平台上的数据处理提供一种并行计算模式,在對数据进行具体处理的时候会分为Map和Reduce两部分。MR的作业流程如下:首先,用户结合接口创建JobClient实例,并向JobTracker请求作业ID,同时检查作业指令文件输入信息和目录是否正确,如果正确则将作业运行所需要的文件信息存储到指定系统中。其次,作业初始化处理。应用作业调度器处理系统中的各类文件信息,创建和JobInProgress实例对应的TaskInProgress实例来监控和调度Map任务。再次,Map和Reduce任务的执行。创建一个TaskInProgress实例监控各类调度任务,将作业文件从分布式系统中抽离出来复制到本地目录上。通过创建的实例执行Map的任务。在Map的任务完成一部分之后分配Reduce任务。最后,作业完成。ReduceTask工作完成之后文件信息被汇总成一个输出文件,在一系列操作完成之后系统会显示“完成”。
2.3 HBase
HBase是一种高性能、高可靠性、可伸缩的分布式数据信息,在具体操作中,HBse和一般关系型数据库相比更加适合被应用到非结构化的数据存储中。在其技术的作用下能够在计算机系统上打造一个大规模结构化的存储集散。其特点具体体现在以下几个方面:第一,表容量大。它的容量大,一个表的容量达到了成千上百万列。第二,面向列。面向列的存储和基本权限受到外界多种因素的限制,在这样的情况下想要充分发挥出自身的作用需要打造一个独立的检索系统。第三,稀疏。对于空列往往不需要占据存储空间,因而表的设计十分稀疏。
3 重复数据删除技术在Hadoop平台上的应用
3.1 系统架构
应用C/S架构打造重复数据删除技术在Hadoop平台上应用的基本模型,在具体操作中通过客户端和服务器之间的交互来实现文件信息在HDFS中的存储,每一个模块的具体功能如下:第一,分块引擎。分块引擎负责应用改进的TD算法来对上传的数据块进行分块处理,进而对分得的数据块应用CubeHash算法计算对应的哈希值,最后,将模块的哈希值、数据长度、文件偏移信息量等上传到服务器终端。第二,存储引擎。存储引擎用来接收从客户端传递来的数据,具体包含哈希值、偏移量、数据块长度等数据信息,结合数据信息的类型将其放置到搜引表中进行匹配处理。第三,元数据存储器。元数据存储器主要用来存储元数据和备份文件。第四,数据存储器。数据存储器用来存储文件中不重复的数据信息。第五,索引表。索引表被存储在系统数据模块中,能够对哈希值、数据块指针数量进行记录。
3.2 文件存取操作
第一,文件存储。和HDFS文件存储相比需要在数据存储之前进行重复数据删除操作,即在存储文件的时候要区分源数据文件、链接文件,然后根据解析来获得所需要访问的文件信息。首先,应用分块引擎系统模块来对系统上传的数据信息进行分块处理,在对系统信息进行分块处理之后得到一个大小、长度不等的数据块。其次,将分析获取的数据块信息以列表或者文件云形式共享到服务器的移动终端,服务器终端接收从客户端上获取的数据信息。再次,读取文件元数据信息,结合这些信息打造链接文件对象、源数据文件。最后,读取数据库信息,在HBase索引中寻找数据库的哈希值,在找到哈希值之后以其中的被指向数据块数加1;如果没有找到,需要在非重复的数据块中添加该数据库列表的偏移数值,并计算出数据块的逻辑地址。第二,文件读取。文件的读取关键是分析和读取各类链接文件,在分析链接文件的情况下来得到对应的数据块逻辑地址和数据库信息模型,之后按照逻辑地址读取数据块信息。文件的读取流程如下:首先,在客户端系统中输入所需要访问的文件的URI;其次,NameNode通过输入URI读取和获取链接文件;接下来,解析链接文件。根据解析链接文件来获取数据块逻辑地址的集合。最后,将读取之后的数据块文件进行拼接。第三,文件的删除。基于HDFS是一次性存储数据、多次读取,且之后不能够随意修改。因而在执行文件删除操作的时候只需要删除链接文件即可。
3.3 文件存取性能优化
第一,提升索引查找速度。在系统数据信息数量不断增加的情况下,相应的数据索引记录表数量也会增加,在处理繁琐数据信息的过程中会在一定程度上降低索引表达速率。针对这个问题,需要在重复数据删除系统中应用布隆过滤器来提升哈希值的分析速度。布隆过滤器的使用原理如下:在布隆过滤器的应用中如果能够找到对应的哈希值,那么则证明哈希值存在于索引表中。在这样的情况下,需要相关人员及时查看索引表的信息,在查找索引表信息之后如果无法找到索引的规律则证明索引表中不存在哈希值。但是从实际使用情况来看,布隆过滤器的使用需要随着索引表内容的更新而进行更新,在这个过程中会损耗大量的资源,且随着需要处理数据信息量的增加,布隆过滤器也会加大,索引工作效率降低。为此,文章在布隆过滤器应用基础上应用生成高频标策略来优化索引表,详细的优化流程如下所示:首先,应用MapReduce对HBase中的索引表中的数据进行处理,之后得到键值对列表。其次,应用得到的键值对列表按照从大到小的顺序来选择一个阈值。最后,查看索引表的每一条记录,将超过阈值的count数值整合记录形成高频表。第二,提升文件读取速度。客户端在访问系统数据信息的时候需要打造相应的链接文件,在打造链接文件之后通过解析文件来获取文件数据块的组合集成,之后通过逻辑地址来获取最终的文件信息。在实际操作中为了避免多次seek操作失误而造成的读写性能降低问题,系统应用合并数据块逻辑地址思想来把多个小逻辑地址组合成为一个较大的逻辑地址,从而有效减少链接文件信息的逻辑地址数目。
3.4 数值实验
通过在Hadoop平台创造的基于重复数据删除技术的存储系统来对改进算法TDOB进行实验对比,通过实验来验证算法是否准确。
(1)实验环境。第一,硬件。实验操作应用i5处理器,6GB內存,500GB的计算机上的三个虚拟机来搭建Hadoop分布式环境。第二,软件。实验室虚拟机是在平台系统下的,在具体运行操作中不需要额外的通信交换设备。第三,Hadoop平台建设。首先,安装JDK,确定系统配置环境变量。其次,修改Hosts文件。在这个文件中包括系统IP地质和主机名,通过修改文件目录能够实现主机名和IP地址的对应。最后,安装SSH并进行无密码验证配置。
(2)实验过程和结果分析。第一,数据集。应用两种数据集来检验和增进算法的准确性和有效性。一种数据集是从网上直接下载的开源项目源代码压缩包,另外一种是用户电脑中常用的文件。第二,DRabin算法的应用分析。和以往的算法相比,这种算法所需要占据的空间较小,执行运算效率较高。本文选择Rabin的算法和DRabin的方法来对数据集中的用户文件进行分块处理,数据库的预期大小是8KB,因而相应的通过计算得到的指纹数值在0-8191之间。在分块处理操作之前各类文件信息会被纳入数据库中,通过输入和输出操作来将文件整体读进到一个和文件大小一样的字节数组中,由此解决了因为文件读取和时间分块处理可能出现的干扰问题。经过实验对比发现,DRabin算法和Rabin算法相比,计算所占用的空间相对较小,数据信息的执行运算速率较高,在使用操作的过程中获得分块处理的速度更快。第三,TDOB算法分析。如果所获得的数据块个数相同,那么分块算法的性能和去除重复率之间呈现出一种正比关系。算法实验分析流程如下:首先,把没有修改过的gcc源代码通过压缩文件的形式上传到Hadoop去重系统中。其次,将修改好的gcc源代码通过压缩文件的形式上传到Hadoop去重系统中。最后,通过查看HDFS修改文件在整个空间系统中所占据的去重复比例来对其进行分析,从实际操作情况来看,改进之后的TGOB算法具有更高的去重率。
4 结 论
综上所述,在信息技术的发展支持下云计算和重复数据删除技术的应用拥有更为广阔的发展空间,Hadoop以其强大的分布计算能力在海量数据信息存储过程中占据着十分重要的地位,且在发展的过程中具有投入成本少、可靠性强的特点。但是从实际使用情况来看,这类技术在信息归档的时候会出现大量重复数据,数据冗余度较高。重复数据删除技术能够对数据存储容量进行优化,减少存储系统中的冗余数据,从而更好地满足人们对不断增长数据存储的需求,需要引起相关人员的注意。
参考文献:
[1] 俞善海.基于Hadoop的重复数据删除技术研究 [D].上海:华东理工大学,2015.
[2]卢艳艳.基于Hadoop的大数据存储关键技术研究[D].保定:华北电力大学,2016.
[3]王菊,徐董冬.基于Hadoop平台的数据压缩技术研究[J].数字技术与应用,2016(8):94-95.
作者简介:郭强(1995.12-),男,汉族,河北张家口人,本科,研究方向:计算机科学与技术。