当前位置: 首页 > 专利查询>东南大学专利>正文

一种基于Hadoop中小文件优化和倒排索引的方法技术

技术编号:9827146 阅读:397 留言:2更新日期:2014-04-01 16:30
本发明专利技术公开了一种基于Hadoop中小文件优化和倒排索引的方法,能够向HDFS分布式文件系统上传海量小文件和对HDFS分布式文件系统上的文件建立倒排索引,所述方法包括小文件优化和建立倒排索引过程;主要包括以下步骤:(1)用户向Hadoop上传大量相对于HDFS块大小的小文件到小文件队列;(2)定时计算文件队列中小文件的大小;(3)使用Sequencefile序列文件方法将达到要求的小文件队列中的文件进行合并后上传到HDFS;(4)对HDFS上的文件建立倒排索引。该方法针对Hadoop处理小文件方便的不足提出优化方案,能够优化小文件的处理性能,释放内存,提高检索的速度和效率。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了,能够向HDFS分布式文件系统上传海量小文件和对HDFS分布式文件系统上的文件建立倒排索引,所述方法包括小文件优化和建立倒排索引过程;主要包括以下步骤:(1)用户向Hadoop上传大量相对于HDFS块大小的小文件到小文件队列;(2)定时计算文件队列中小文件的大小;(3)使用Sequencefile序列文件方法将达到要求的小文件队列中的文件进行合并后上传到HDFS;(4)对HDFS上的文件建立倒排索引。该方法针对Hadoop处理小文件方便的不足提出优化方案,能够优化小文件的处理性能,释放内存,提高检索的速度和效率。【专利说明】—种基于Hadoop中小文件优化和倒排索引的方法
本专利技术涉及系统处理领域,尤其是涉及。
技术介绍
当文件的大小小于HDFS (分布式文件系统)上块的大小时,这样的文件在Hadoop称为小文件。大量的小文件会严重影响Hadoop的扩展性和性能。(I)在HDFS分布式文件系统中,任何文件信息、文件块信息在NameNode (主节点)的内存中都以一个对象的形式存储,每一个对象约占150字节,大量小文件使NameNode的内存使用情况严重制约了集群的扩展。(2)HDFS访问大量小文件速度远远小于访问同等大小的大文件。它主要是为了流式的访问大文件而设计的。对小文件的读取通常会造成大量从Datanode到Datanode的获取文件,这样是非常的低效的一种访问方式。(3) MapReduce (并行数据处理)处理批量小文件时间远远长于处理同等大小的大文件的时间。处理每一个小文件要占用一个task (任务),若小文件过多,则大部分处理时间都耗费在启动task和释放task上。Map函数通常处理的是一个块大小的输入,若有非常多的小文件会产生大量的Map函数来执行,而这些Map函数无疑会占用大量的内存。对于大量的小文件引起的问题,Hadoop技术自身提供了三个解决方案,分别为:Hadoop Archive (HadoopES), Sequence file (序列文件)和 CombineFileInputFormat(组合文件输入格式)。Hadoop Archive将小文件打包成HAR文件,首先是建立一个主索引结构,这个主索引指向二级索弓丨,由二级索引指向具体的小文件。因此访问每个HAR文件将需要完成两层索引文件读取和文件本身数据读取,所以实际上通过HAR来读取一个文件可能会比直接从HDFS中读取文件效率要低。Hadoop Archive, Sequence file和CombineFileInputFormat这三个工具不能自动化,都需要管理员手动添加,效率非常的低下,不适合大量的文件操作。我们处于一个大数据的时代,于众多的文件之中找到用户自己想要的文件将会成为一个影响用户体验性的瓶颈。费时又费力的手动去查询文件影响用户的体验性,这个时候需要对每一个文件建立一个快速的索引以帮助用户迅速找到自己所需文件。搜索引擎可以在海量数据里面精准、迅速检索出用户需要的信息,已经成为人们上网中必须使用的重要信息获取渠道。可以借鉴互联网中的搜索引擎中的倒排索引技术来帮助用户快速定位信肩、O实际上,电子办公过程中所产生的数据主要有两种:结构化数据和非结构化数据。如数据库表格中的数据是有固定格式的,这属于格式化数据。另一类是没有固定格式的数据比如Word、PDF文档等,非结构化数据又称为全文数据。HDFS上存放的文件基本都是非结构化的数据。全文数据中找到自己需要的信息主要是通过对全文扫描,然后建立起一个精确词语定位的检索。目前有两种检索方法来检索非结构化数据,第一个是顺序扫描方法,对非结构化文档从头部扫描到文档最后,若在文档里面扫描查找到所需要的信息,则把这个文档记录下来,然后在选择下一个文档继续从头到尾扫描,直到所有的文档扫描完毕返回记录的文档,效率较低。第二种是从全文文档提取分离字符串,对这些获取的信息重新进行组织和排序,形成一种索引结构,这种方法叫做索引扫描法,效率较高。要想提高非结构化数据的检索速度,应该关注如何创建全文索引以及创建后如何高效搜索全文。针对全文数据的索引方法通常有:正排索引法和倒排索引法,前者以文档作为建立索引的主题,将文档标号为关键词,在索引中记录文档出现的每一个词的位置信息,查找时按照文档标号依次扫描所有文档;后一种方法恰恰相反,这种索引方式以每一个可能被检索到的关键词为主题进行索引,记录该关键词在文档中出现的频率和位置信息,这样就可以将所有包含该关键词的文档一次找到,大大提高了检索的速度。针对分布式文件系统上的文件可以利用MapReduce并行编程模型建立倒排索引。
技术实现思路
本专利技术主要解决的技术问题是提供,能够优化系统,提高小文件的处理性能,释放内存,提高检索的速度和效率。为解决上述技术问题,本专利技术米用的一个技术方案是:提供,所述方法能够向HDFS分布式文件系统上传海量小文件和对分布式文件系统上的文件建立倒排索引,所述方法包括小文件优化和建立倒排索引过程;其中: O小文件优化的步骤包括: 1.1)首先用户上传文件到云存储平台,系统判断该文件是否属于小文件,如果是,就将该文件交给小文件处理模块处理,进行步骤1.2);如果不是,则直接进行步骤1.3),将该文件存入HDFS分布式文件系统; 1.2)把步骤1.1)传过来的小文件存储到小文件队列中去,在所述小文件处理模块中开启定时任务,采用判断模块间隔计算所述小文件队列中文件的总大小; 1.3)把所述小文件队列中的全部小文件一次性的交给文件合并模块,通过序列文件以文件名作键(key),相应的文件内容为值(value),将这些小文件一次性写入HDFS分布式文件系统,同时删除已处理过的文件,并将结果写入HDFS分布式文件系统; 2)建立倒排索引过程的步骤包括: 2.1)建立倒排索引的映射(Map)过程 映射(Map)过程把输入的文本文档按照文档标识号分成M片段,处理成组合形式为J〈文档号,文本内容〉的键值对,然后把键值对分发到多个处理节点上,所述处理节点把J〈文档号,文本内容〉作为一个映射(Map)过程的输入,分别对每一个文档号对应的文档内容进行词语切分,并统计单词的出现频率,最后形成组合形式为K〈关键字+文档名,词频〉的键值对,这里的词频统一设置为I ; 2.2)建立倒排索引的合并(Combine)过程 合并(Combine)过程阶段的输入是映射(Map)过程的输出结果,在这个阶段是将键值对中有相同键的值进行归并,把他们放在一个列表里面,所述合并(Combine)过程处理后的数据形式是L〈文档名,词频〉的键值对格式,这里的词频是一篇文档中的总词频; 2.3)建立倒排索引的化简(Reduce)过程 合并(Combine)过程中输出的键值对作为化简(Reduce)过程的输入,在这个阶段是将同一个关键字的所有形式为L〈文档名,词频〉的值进行字符串连接合并,形成格式为N〈关键字文档名,词频〉的倒排索引并输出到分布式文件系统,然后,整理键值对。在本专利技术一较佳实施例中,所述小文件为文件大小小于所述HDFS分布式文件系统上块的大小的文件。在本专利技术一较佳实施例中,所述步骤1.1)中的小文件处理模本文档来自技高网
...

【技术保护点】
一种基于Hadoop中小文件优化和倒排索引的方法,所述方法能够向分布式文件系统上传海量小文件和对分布式文件系统上的文件建立倒排索引,其特征在于,所述方法包括小文件优化和建立倒排索引过程;其中:1)小文件优化的步骤包括:1.1)首先用户上传文件到云存储平台,系统判断该文件是否属于小文件,如果是,就将该文件交给小文件处理模块处理,进行步骤1.2);如果不是,则直接进行步骤1.3),将该文件存入分布式文件系统;1.2)把步骤1.1)传过来的小文件存储到小文件队列中去,在所述小文件处理模块中开启定时任务,采用判断模块间隔计算所述小文件队列中文件的总大小;1.3)把所述小文件队列中的全部小文件一次性的交给文件合并模块,通过序列文件以文件名作键,相应的文件内容为值,将这些小文件一次性写入分布式文件系统,同时删除已处理过的文件;2)建立倒排索引过程的步骤包括:2.1)建立倒排索引的映射过程映射过程把输入的文本文档按照文档标识号分成M片段,处理成组合形式为J〈文档号,文本内容〉的键值对,然后把键值对分发到多个处理节点上,所述处理节点把J〈文档号,文本内容〉作为一个映射过程的输入,分别对每一个文档号对应的文档内容进行词语切分,并统计单词的出现频率,最后形成组合形式为K〈关键字+文档名,词频〉的键值对,这里的词频统一设置为1;2.2)建立倒排索引的合并过程合并过程阶段的输入是映射过程的输出结果,在这个阶段是将键值对中有相同键的值进行归并,把他们放在一个列表里面,所述合并过程处理后的数据形式是L〈文档名,词频〉的键值对格式,这里的词频是一篇文档中的总词频;2.3)建立倒排索引的化简过程合并过程中输出的键值对作为化简过程的输入,在这个阶段是将同一个关键字的所有形式为L〈文档名,词频〉的值进行字符串连接合并,形成格式为N〈关键字文档名,词频〉的倒排索引并输出到分布式文件系统,然后,整理键值对。...

【技术特征摘要】

【专利技术属性】
技术研发人员:吴含前姚莉马风新李露
申请(专利权)人:东南大学
类型:发明
国别省市:江苏;32

网友询问留言 已有2条评论
  • 来自[湖北省武汉市联通] 2014年05月09日 12:29
    楼主,你这是简单的倒排索引啊,完全没有意义啊,能不能看看完整的倒排索引怎么构建呢
    0
  • 来自[西安交通大学] 2014年05月02日 17:14
    倒排索引很新奇,希望能够进一步详细了解。
    0
1