基于Hadoop海量小文件存储方法研究.docVIP

基于Hadoop海量小文件存储方法研究.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Hadoop海量小文件存储方法研究

基于Hadoop海量小文件存储方法研究   摘要:随着科学技术的发展,各行业及领域需要处理的数据呈爆炸式增长。Hadoop是大文件存储处理的理想平台,但Hadoop在处理海量小文件时的表现并不令人满意。本文首先对HDFS的系统架构作了简要介绍,进而分析了HDFS处理海量小文件时存在的问题,最后介绍了目前国内外对该问题提出的优化方案。   关键词:HDFS 海量数据 小文件 存储优化   中图分类号:TP333 文献标识码:A 文章编号:1007-9416(2014)01-0050-02   1 引言   Hadoop[1]是由Apache基金会研发的能够对海量数据进行分布式处理的基础框架,是海量数据存储与处理的理想平台。然而由于Hadoop采用流式方式读写文件,对于大文件处理效率极高,但对小文件处理效果并不是很好。当处理如气象数据这种海量小文件时,Hadoop的优势并不能展示出来,故需要对小文件的存储进行优化。   2 HDFS的系统架构   HDFS是Hadoop的分布式文件系统,其具有高容错性的特点,设计用来部署在低廉硬件上,能够提供极高的数据吞吐量,适合那些有着超大数据集的应用程序[2],因而成为了云存储平台的代表性系统。   HDFS采用主从架构,由一个名称节点和多个数据节点组成。名称节点是HDFS的主服务器,主要负责管理元数据和数据块、持久化元数据、处理请求及管理数据节点,数据节点主要负责数据块的读写、向名称节点报告状态及执行数据的流水线复制。客户端通过与名称节点和数据节点的交互来访问整个文件系统。   3 HDFS处理海量小文件存在的问题   HDFS设计用来对大文件进行流式存储,在处理小文件时会产生一些问题[3]。小文件是指文件大小小于HDFS块大小(默认为64MB)的文件,大量的小文件会严重影响Hadoop的性能及其扩展性。首先,海量小文件大量耗费名字节点的内存。每个小文件作为一个块存储,海量数据块的元数据信息会占用大量内存,这样名称节点的内存容量会严重制约集群的扩展。其次,海量小文件的存取效率低。大量小文件写入HDFS时需频繁请求名称节点分配数据块,读取大量小文件时需频繁请求数据节点以获取文件,严重影响了名称节点和数据节点的I/O性能。   4 HDFS小文件问题优化方案   4.1 Hadoop自带的解决方案   对于小文件问题,Hadoop自身提供了以下三种解决方案。   4.1.1 Hadoop Archive(HAR)   HAR文件归档技术用来缓解大量小文件消耗名称节点内存的问题。HAR在HDFS上构建一个层次化的文件系统,通过将小文件打包成HAR文件来减少HDFS中的文件数量,从而提高HDFS元数据的存储效率。但读取HAR中的文件需读取两层index文件及读取文件本身数据,并且HAR不支持存档文件的压缩,因此使用HAR处理小文件效率较低。   4.1.2 Sequence File   SequenceFile是HDFS提供的一种二进制文件技术,通过将对序列化到SequenceFile文件,实现多个小文件的合并存储,合并同时还支持基于数据块的压缩,显著减少了名称节点的内存及数据节点的磁盘空间。但这种方法没有建立相应的小文件到大文件的映射,查找小文件需遍历整个SequenceFile文件,读取效率较低。   4.1.3 CombineFileInputFormat   CombineFileInputFormat是一种新的输入格式,用于将多个文件合并成一个单独的split,另外它会考虑数据的存储位置。对于HDFS中已经存在大量小文件的情况比较适用。但CombineFileInputFormat是一个抽象类,没有提供实体类,所以使用的时候需要一些额外的工作,在实践中使用较少。   4.2 HDFS小文件问题的优化方案   针对HDFS处理海量小文件的问题,一些相应的优化方案在研究中被相继提出。   4.2.1 通用技术方案   江柳[4]提出下放名称节点的权限给数据节点的方法。其基本思路是将名称节点的部分权限下放到数据节点上,在数据节点上缓存部分小文件元数据信息,让数据节点处理绝大多数小文件的读写请求,从而最大限度的减轻名称节点的负担。   李宽[5]提出了采用分布式名称节点模型来处理HDFS的单节点瓶颈及扩展性问题。文章提出了一种二级元数据分布算法,将元数据信息分离成目录信息和数据位置信息两部分,采用不同的分布策略进行分布。该方法在保证高效率的元数据服务的基础上,考虑了元数据的负载均衡性和扩展性,并提出名称节点集群中元数据的可靠性机制。   4.2.2 WebGIS优化方案   文献[6]针对WebGIS系统的特点提出了解决HDFS小文件问题的方

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档