一种用于Hadoop分布式环境的图像索引结构的制作方法

文档序号:6519758阅读:369来源:国知局
一种用于Hadoop分布式环境的图像索引结构的制作方法【专利摘要】本发明公开了一种用于Hadoop分布式环境的图像索引结构,该图像索引结构包括索引模块和解析模块,所述索引模块含有一个用于存放图像文件ID和偏移量的索引文件和一个用于存放所有图像文件数据的数据文件。本发明通过将大量图像小文件集合到一个大文件中,并且加入了索引结构,通过使用分布式系统进行处理时,解决了海量图像处理开销大且效率低下的问题;文件数量减少之后,系统节省大量管理所需存储空间;文件数量减少之后,任务调度的资源也将减少;文件数量减少之后,启动任务也将变少,达到系统瓶颈的机会大大减少。【专利说明】—种用于Hadoop分布式环境的图像索引结构【
技术领域
】[0001]本发明涉及图像数据检索【
技术领域
】,尤其涉及一种用于Hadoop分布式环境的图像索引结构,其在Hadoop分布式环境下对索引文件进行解析,读取数据文件中的图像数据用于HadoopMapreduce框架处理。【
背景技术
】[0002]目前,随着互联网的广泛普及和多媒体技术的飞速发展,多媒体在互联网流量中所占的比重越来越高,尤其是基于图像处理的应用服务已经渐渐取代了传统的文字信息应用。在图像处理领域,由于数字图像处理数据量较大,复杂度高,传统的单机处理已经达到了明显的瓶颈,使用并行处理无疑是一个好的解决方案。[0003]针对目前网络上大部分数据信息都有对应的图像的情况,目前也有一些技术提出:用户在进行信息搜索时,可以以图像作为其输入的内容,从而基于用户输入的图像,通过获取该图像所包含的与图像相关的信息(以下简称图像信息),就可以从图像库中搜索具备与获取的图像信息相匹配的图像信息的图像以克服基于关键词的信息检索方法存在的上述弊端。[0004]与基于关键词的信息检索方法需要以生成信息索引为前提类似,基于图像的信息检索方法也需要针对图像库中海量的图像生成索引,从而为后续的检索流程提供数据支持。现有技术中,传统的基于图像的信息检索技术,针对图像库中的图像生成图像索引时主要采用的是依据图像的文件名(或其他针对图像的文字描述信息)的方式,该方式的实现前提是需要操作人员手工为图像添加相应的文字描述信息。基于手工添加文字描述信息的方式生成图像索引的缺陷在于:图像库中的图像数量往往非常庞大,基于手工添加文字描述信息的方式生成图像索引势必导致耗费较多的处理资源。并且,由于操作人员在添加文字描述信息时难免带入自身对于图像的一些主观感受,从而上述图像索引生成方式还可能存在生成的图像索引在一定程度上受到操作人员主观感受的影响从而准确性不高的问题。[0005]Hadoop是一个能够对大量数据进行分布式处理的软件框架。但是Hadoop是以一种可靠、高效、可伸缩的方式进行处理的。Hadoop是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop是高效的,因为以并行的方式工作,通过并行处理加快处理速度。Hadoop还是可伸缩的,能够处理PB级数据。此外,Hadoop可依赖于社区服务器,因此它的成本比较低,任何人都可以使用。[0006]Hadoop同时是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:(I).高可靠性=Hadoop按位存储和处理数据的能力值得人们信赖。[0007](2).高扩展性:Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。[0008](3).高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。[0009](4).高容错性:Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。[0010]但是面对着规模越来越大的海量文件,Hadoop分布式系统在并行处理过程中,也逐渐遇到一些问题,主要有三个方面:一、文件系统管理大量小文件需要极大存储空间;二、大量小文件的任务调度需要占用大量资源;三、由于每个文件都需要启动一个任务,在大量小文件的输入下,不仅浪费调度资源,而且极易达到系统瓶颈造成任务排队。以往的解决方案分为2类:一是扩展整个分布式系统,但是这只能解决并发任务数量的问题,并且扩展系统的成本较高;二是对这些小文件进行压缩合并,如使用Hadoop自带的SequenceFiIe,但是这样在处理图片文件时会带来另一个问题-Hadoop本身对于图像文件并没有提供专门的接口,怎样让Hadoop可以识别这些图像文件。【
发明内容】[0011]针对上述现有技术,本发明的目的在于如何提供一种用于Hadoop分布式环境的图像索引结构及检索方法,其旨在解决在海量图像处理中由于处理大量小文件所造成的如下技术问题:一、文件系统管理大量小文件需要极大存储空间;二、大量小文件的任务调度需要占用大量资源;三、由于每个文件都需要启动一个任务,在大量小文件的输入下,不仅浪费调度资源,而且极易达到系统瓶颈造成任务排队。[0012]为了解决上述技术问题,本发明采用如下技术方案:一种用于Hadoop分布式环境的图像索引结构,其特征在于,该图像索引结构包括索引模块和解析模块,所述索引模块含有一个用于存放图像文件ID和偏移量的索引文件和一个用于存放所有图像文件数据的数据文件;解析模块包含自定义的用于解析索引模块中的图像数据并分片转换成ImageWritable的ImageFilelnputFormat接口类和ImageWritable接口类。[0013]所述ImageFilelnputFormat接口类从索引模块中的索引文件中读取图像文件的ID和偏移量在数据文件中定位并读取数据再通过ImageWritable接口类反序列化成ImageWritable0[0014]与现有技术相比,本发明具有以下有益效果:本发明通过将大量图像小文件集合到一个大文件中,并且加入了索引结构,通过使用分布式系统进行处理时,解决了海量图像处理开销大且效率低下的问题;文件数量减少之后,系统节省大量管理所需存储空间;文件数量减少之后,任务调度的资源也将减少;文件数量减少之后,启动任务也将变少,达到系统瓶颈的机会大大减少。【专利附图】【附图说明】[0015]图1为发明中的索引模块的结构图。[0016]图2为本发明与HadoopMapReduce模型结合图。[0017]图3为部分实验结果。【具体实施方式】[0018]下面将结合附图及【具体实施方式】对本发明作进一步的描述。[0019]一种用于Hadoop分布式环境的图像索引结构,其特征在于,该图像索引结构包括索引模块和解析模块,所述索引模块含有一个用于存放图像文件ID和偏移量的索引文件和一个用于存放所有图像文件数据的数据文件;索引文件以Map结构的形式存储,ID是Map的key,偏移量是Map的value。数据文件是一个存储流数据的文件。从Hadoop的文件系统——HDFS上读取图像文件,进行解码,从解码后的数据中解析出图像的文件名,宽高值以及像素信息,存入我们自定义的Imageffritable中,同时计算ImageWritable的大小,作为这张ImageWritable的偏移量,之后把文件名作为ID,和偏移量存入索引文件中,ImageWritable通过ImageWritable接口类序列化到数据文件的末尾。[0020]在Hadoop中定义一个变量-blocksize(默认为64MB),表不每一个切片大小的最大值。由数据文件的大小除以blocksize再加1,可以得到数据文件可以得到切片的数量。对于每一个切片用一个列表来存储解析出的ImageWritable,同时计算偏移量,得到下一张ImageWritable,当偏移量超过blocksize时,一个切片的操作就完成。循环切片操作直到所有切片操作完成。[0021]本发明是用于分布式系统处理海量图像。该结构能够将大量图片小文件集合到一个图像索引结构中,变相转化为一个大文件。该索引结构能够很好的解决分布式系统中对与处理大量小文件存在的问题,大大提高系统效率,同时减少处理时间。[0022]我们的测试实验软硬件环境为:硬件环境:电脑类型:2台IBMSystemP5570小型机;`CPU:1BMP0WER5CPU16-corei2.2GHz内存:30.0OGB系统类型:64位操作系统显示卡:集成显卡软件环境:IDE:Eclipse3.7分布式环境:Hadoop_l.0.3开发语言:Java根据附图2所示,我们在Hadoop分布式平台上的实现过程如下:首先将Hadoop文件系统中获取到的图片文件转为数据流,按照附图1所示结构存入,具体过程为:计算文件大小得到偏移量,使用文件名得到ID,使用Map结构实现索引文件——Key为ID,Value为偏移量,同时将数据流写入`数据文件。[0023]接着索引结构作为输入,使用解析模块中的自定义文件输入格式(ImageFilelnputFormat)对索引结构进行解析,接着对数据文件进行分片,每一个分片可以作为HadoopMapReduce框架的输入,同时将图片转换成HadoopMapreduce框架可以识别的Writable类型(ImageWritable)。【权利要求】1.一种用于Hadoop分布式环境的图像索引结构,其特征在于,该图像索引结构包括索引模块和解析模块,所述索引模块含有一个用于存放图像文件ID和偏移量的索引文件和一个用于存放所有图像文件数据的数据文件。2.根据权利要求1所述的用于Hadoop分布式环境的图像索引结构,其特征在于,解析模块包含自定义的用于解析索引模块中的图像数据并分片转换成ImageWritable的ImageFileInputFormat接口类和ImageWritable接口类。3.根据权利要求1所述的用于Hadoop分布式环境的图像索引结构,其特征在于,所述ImageFilelnputFormat接口类从索引模块中的索引文件中读取图像文件的ID和偏移量在数据文件中定位并读取数据再通过ImageWritable接口类反序列化成ImageWritable。【文档编号】G06F17/30GK103577604SQ201310583105【公开日】2014年2月12日申请日期:2013年11月20日优先权日:2013年11月20日【发明者】董乐,林智煜,封宁,梁燕申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1