CN103577604B - 一种用于Hadoop分布式环境的图像索引结构 - Google Patents
一种用于Hadoop分布式环境的图像索引结构 Download PDFInfo
- Publication number
- CN103577604B CN103577604B CN201310583105.XA CN201310583105A CN103577604B CN 103577604 B CN103577604 B CN 103577604B CN 201310583105 A CN201310583105 A CN 201310583105A CN 103577604 B CN103577604 B CN 103577604B
- Authority
- CN
- China
- Prior art keywords
- image
- file
- index
- imagewritable
- hadoop
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种用于Hadoop分布式环境的图像索引结构,该图像索引结构包括索引模块和解析模块,所述索引模块含有一个用于存放图像文件ID和偏移量的索引文件和一个用于存放所有图像文件数据的数据文件。本发明通过将大量图像小文件集合到一个大文件中,并且加入了索引结构,通过使用分布式***进行处理时,解决了海量图像处理开销大且效率低下的问题;文件数量减少之后,***节省大量管理所需存储空间;文件数量减少之后,任务调度的资源也将减少;文件数量减少之后,启动任务也将变少,达到***瓶颈的机会大大减少。
Description
技术领域
本发明涉及图像数据检索技术领域,尤其涉及一种用于Hadoop分布式环境的图像索引结构,其在Hadoop分布式环境下对索引文件进行解析,读取数据文件中的图像数据用于Hadoop Mapreduce框架处理。
背景技术
目前,随着互联网的广泛普及和多媒体技术的飞速发展,多媒体在互联网流量中所占的比重越来越高,尤其是基于图像处理的应用服务已经渐渐取代了传统的文字信息应用。在图像处理领域,由于数字图像处理数据量较大,复杂度高,传统的单机处理已经达到了明显的瓶颈,使用并行处理无疑是一个好的解决方案。
针对目前网络上大部分数据信息都有对应的图像的情况,目前也有一些技术提出:用户在进行信息搜索时,可以以图像作为其输入的内容,从而基于用户输入的图像,通过获取该图像所包含的与图像相关的信息(以下简称图像信息),就可以从图像库中搜索具备与获取的图像信息相匹配的图像信息的图像以克服基于关键词的信息检索方法存在的上述弊端。
与基于关键词的信息检索方法需要以生成信息索引为前提类似,基于图像的信息检索方法也需要针对图像库中海量的图像生成索引,从而为后续的检索流程提供数据支持。现有技术中,传统的基于图像的信息检索技术,针对图像库中的图像生成图像索引时主要采用的是依据图像的文件名(或其他针对图像的文字描述信息)的方式,该方式的实现前提是需要操作人员手工为图像添加相应的文字描述信息。基于手工添加文字描述信息的方式生成图像索引的缺陷在于:图像库中的图像数量往往非常庞大,基于手工添加文字描述信息的方式生成图像索引势必导致耗费较多的处理资源。并且,由于操作人员在添加文字描述信息时难免带入自身对于图像的一些主观感受,从而上述图像索引生成方式还可能存在生成的图像索引在一定程度上受到操作人员主观感受的影响从而准确性不高的问题。
Hadoop 是一个能够对大量数据进行分布式处理的软件框架。但是 Hadoop 是以一种可靠、高效、可伸缩的方式进行处理的。Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop是高效的,因为以并行的方式工作,通过并行处理加快处理速度。Hadoop 还是可伸缩的,能够处理 PB 级数据。此外,Hadoop 可依赖于社区服务器,因此它的成本比较低,任何人都可以使用。
Hadoop同时是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:
(1).高可靠性:Hadoop按位存储和处理数据的能力值得人们信赖。
(2).高扩展性: Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
(3).高效性: Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
(4).高容错性: Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
但是面对着规模越来越大的海量文件,Hadoop分布式***在并行处理过程中,也逐渐遇到一些问题,主要有三个方面:一、文件***管理大量小文件需要极大存储空间;二、大量小文件的任务调度需要占用大量资源;三、由于每个文件都需要启动一个任务,在大量小文件的输入下,不仅浪费调度资源,而且极易达到***瓶颈造成任务排队。以往的解决方案分为2类:一是扩展整个分布式***,但是这只能解决并发任务数量的问题,并且扩展***的成本较高;二是对这些小文件进行压缩合并,如使用Hadoop自带的SequenceFile,但是这样在处理图片文件时会带来另一个问题——Hadoop本身对于图像文件并没有提供专门的接口,怎样让Hadoop可以识别这些图像文件。
发明内容
针对上述现有技术,本发明的目的在于如何提供一种用于Hadoop分布式环境的图像索引结构及检索方法,其旨在解决在海量图像处理中由于处理大量小文件所造成的如下技术问题:一、文件***管理大量小文件需要极大存储空间;
二、大量小文件的任务调度需要占用大量资源;三、由于每个文件都需要启动一个任务,在大量小文件的输入下,不仅浪费调度资源,而且极易达到***瓶颈造成任务排队。
为了解决上述技术问题,本发明采用如下技术方案:
一种用于Hadoop分布式环境的图像索引结构,其特征在于,该图像索引结构包括索引模块和解析模块,所述索引模块含有一个用于存放图像文件ID和偏移量的索引文件和一个用于存放所有图像文件数据的数据文件;
解析模块包含自定义的用于解析索引模块中的图像数据并分片转换成ImageWritable的ImageFileInputFormat接口类和ImageWritable接口类。
所述ImageFileInputFormat接口类从索引模块中的索引文件中读取图像文件的ID和偏移量在数据文件中定位并读取数据再通过ImageWritable接口类反序列化成ImageWritable。
与现有技术相比,本发明具有以下有益效果:
本发明通过将大量图像小文件集合到一个大文件中,并且加入了索引结构,通过使用分布式***进行处理时,解决了海量图像处理开销大且效率低下的问题;文件数量减少之后,***节省大量管理所需存储空间;文件数量减少之后,任务调度的资源也将减少;文件数量减少之后,启动任务也将变少,达到***瓶颈的机会大大减少。
附图说明
图1为发明中的索引模块的结构图。
图2为本发明与Hadoop MapReduce模型结合图。
图3为部分实验结果。
具体实施方式
下面将结合附图及具体实施方式对本发明作进一步的描述。
一种用于Hadoop分布式环境的图像索引结构,其特征在于,该图像索引结构包括索引模块和解析模块,所述索引模块含有一个用于存放图像文件ID和偏移量的索引文件和一个用于存放所有图像文件数据的数据文件;
索引文件以Map结构的形式存储,ID是Map的key,偏移量是Map的value。数据文件是一个存储流数据的文件。从Hadoop的文件***——HDFS上读取图像文件,进行解码,从解码后的数据中解析出图像的文件名,宽高值以及像素信息,存入我们自定义的ImageWritable中,同时计算ImageWritable的大小,作为这张ImageWritable的偏移量,之后把文件名作为ID,和偏移量存入索引文件中,ImageWritable通过ImageWritable接口类序列化到数据文件的末尾。
在Hadoop中定义一个变量——blocksize(默认为64MB),表示每一个切片大小的最大值。由数据文件的大小除以blocksize再加1,可以得到数据文件可以得到切片的数量。对于每一个切片用一个列表来存储解析出的ImageWritable,同时计算偏移量,得到下一张ImageWritable,当偏移量超过blocksize时,一个切片的操作就完成。循环切片操作直到所有切片操作完成。
本发明是用于分布式***处理海量图像。该结构能够将大量图片小文件集合到一个图像索引结构中,变相转化为一个大文件。该索引结构能够很好的解决分布式***中对与处理大量小文件存在的问题,大大提高***效率,同时减少处理时间。
我们的测试实验软硬件环境为:
硬件环境:
电脑类型:2台IBM System P5 570小型机;
CPU:IBM POWER5 CPU [email protected]
内存:30.00GB
***类型:64位操作***
显示卡:集成显卡
软件环境:
IDE:Eclipse3.7
分布式环境:Hadoop-1.0.3
开发语言:Java
根据附图2所示,我们在Hadoop分布式平台上的实现过程如下:
首先将Hadoop文件***中获取到的图片文件转为数据流,按照附图1所示结构存入,具体过程为:计算文件大小得到偏移量,使用文件名得到ID,使用Map结构实现索引文件——Key为ID,Value为偏移量,同时将数据流写入数据文件。
接着索引结构作为输入,使用解析模块中的自定义文件输入格式(ImageFileInputFormat)对索引结构进行解析,接着对数据文件进行分片,每一个分片可以作为Hadoop MapReduce框架的输入,同时将图片转换成Hadoop Mapreduce框架可以识别的Writable类型(ImageWritable)。
Claims (2)
1.一种用于Hadoop分布式环境的图像索引结构,其特征在于,该图像索引结构包括索引模块和解析模块,所述索引模块含有一个用于存放图像文件ID和偏移量的索引文件和一个用于存放所有图像文件数据的数据文件;解析模块包含自定义的用于解析索引模块中的图像数据并分片转换成ImageWritable的ImageFileInputFormat接口类和ImageWritable接口类,通过ImageWritable接口类将所有图像文件集合到一个大文件中;其中,ImageFileInputFormat接口类表示自定义文件输入格式接口类,ImageWritable接口类表示可写格式接口类。
2.根据权利要求1所述的用于Hadoop分布式环境的图像索引结构,其特征在于,所述ImageFileInputFormat接口类从索引模块中的索引文件中读取图像文件的ID和偏移量在数据文件中定位并读取数据再通过ImageWritable接口类反序列化成ImageWritable。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310583105.XA CN103577604B (zh) | 2013-11-20 | 2013-11-20 | 一种用于Hadoop分布式环境的图像索引结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310583105.XA CN103577604B (zh) | 2013-11-20 | 2013-11-20 | 一种用于Hadoop分布式环境的图像索引结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103577604A CN103577604A (zh) | 2014-02-12 |
CN103577604B true CN103577604B (zh) | 2018-07-06 |
Family
ID=50049380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310583105.XA Active CN103577604B (zh) | 2013-11-20 | 2013-11-20 | 一种用于Hadoop分布式环境的图像索引结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103577604B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105574151B (zh) * | 2015-12-16 | 2019-08-06 | 北京奇虎科技有限公司 | 图像存储方法和设备 |
CN106446099A (zh) * | 2016-09-13 | 2017-02-22 | 国家超级计算深圳中心(深圳云计算中心) | 一种分布式云存储方法、***及其上传下载方法 |
CN110597762A (zh) * | 2018-05-25 | 2019-12-20 | 杭州海康威视***技术有限公司 | 文件处理方法、装置、设备及存储介质 |
CN110109890A (zh) * | 2019-05-10 | 2019-08-09 | 京东方科技集团股份有限公司 | 非结构化数据处理方法和非结构化数据处理*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136286A (zh) * | 2011-12-05 | 2013-06-05 | 上海特易信息科技有限公司 | 一种分布式搜索的架构 |
CN103207889A (zh) * | 2013-01-31 | 2013-07-17 | 重庆大学 | 一种基于Hadoop的海量人脸图像的检索方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279474A (zh) * | 2013-04-10 | 2013-09-04 | 深圳康佳通信科技有限公司 | 一种视频文件索引方法及*** |
CN103324762A (zh) * | 2013-07-17 | 2013-09-25 | 陆嘉恒 | 基于Hadoop的索引创建方法及其索引方法 |
-
2013
- 2013-11-20 CN CN201310583105.XA patent/CN103577604B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136286A (zh) * | 2011-12-05 | 2013-06-05 | 上海特易信息科技有限公司 | 一种分布式搜索的架构 |
CN103207889A (zh) * | 2013-01-31 | 2013-07-17 | 重庆大学 | 一种基于Hadoop的海量人脸图像的检索方法 |
Non-Patent Citations (1)
Title |
---|
基于Hadoop的海量小文件处理方法的研究;泰冬雪;《中国优秀硕士学位论文全文数据库 信息科技辑》;20120415(第4期);第2.3节,第3章,第4.1节 * |
Also Published As
Publication number | Publication date |
---|---|
CN103577604A (zh) | 2014-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109254733B (zh) | 用于存储数据的方法、装置和*** | |
Das et al. | Big data analytics: A framework for unstructured data analysis | |
US9875265B2 (en) | Database table format conversion based on user data access patterns in a networked computing environment | |
US8344916B2 (en) | System and method for simplifying transmission in parallel computing system | |
US11409754B2 (en) | NLP-based context-aware log mining for troubleshooting | |
WO2014206289A1 (en) | Method and apparatus for outputting log information | |
CN110914814B (zh) | 分布式存储环境的认知文件和对象管理 | |
CN103577604B (zh) | 一种用于Hadoop分布式环境的图像索引结构 | |
US11307984B2 (en) | Optimized sorting of variable-length records | |
CN113254445A (zh) | 实时数据存储方法、装置、计算机设备及存储介质 | |
CN106570153A (zh) | 一种海量url的数据提取方法及*** | |
US10133713B2 (en) | Domain specific representation of document text for accelerated natural language processing | |
CN114780615A (zh) | 错误码管理方法及其装置 | |
CN110888972A (zh) | 一种基于Spark Streaming的敏感内容识别方法及装置 | |
CN114489622A (zh) | 静态资源管理方法、Node.js应用、电子设备和存储介质 | |
CN113010542B (zh) | 业务数据处理方法、装置、计算机设备及存储介质 | |
US10452613B2 (en) | Persistent directory for variable-size entry container free-space handling | |
CN106570151A (zh) | 一种海量文件的数据收集处理方法及*** | |
Zhou et al. | Sfmapreduce: An optimized mapreduce framework for small files | |
US8984028B2 (en) | Systems and methods for storing data and eliminating redundancy | |
CN111767287A (zh) | 数据导入方法、装置、设备及计算机存储介质 | |
CN116932147A (zh) | 流式作业处理方法、装置、电子设备及介质 | |
CN107643892B (zh) | 接口处理方法、装置、存储介质和处理器 | |
CN113836157A (zh) | 获取数据库增量数据的方法和装置 | |
CN115905274A (zh) | 数据处理的方法、装置、电子设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |