`
lxm63972012
  • 浏览: 36802 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

hadoop 小文件解决方案

 
阅读更多

 

基于Hadoop Sequencefile的小文件解决方案

 

一、 概述

   小文件是指文件size小于HDFSblock大小的文件。这样的文件会给hadoop的扩展性和性能带来严重问题。首先,在HDFS中,任何block,文件或者目录在内存中均以对象的形式存储,每个对象约占150byte,如果有1000 0000个小文件,每个文件占用一个block,则namenode大约需要2G空间。如果存储1亿个文件,则namenode需要20G空间。这样namenode内存容量严重制约了集群的扩展。 其次,访问大量小文件速度远远小于访问几个大文件。HDFS最初是为流式访问大文件开发的,如果访问大量小文件,需要不断的从一个datanode跳到另一个datanode,严重影响性能。最后,处理大量小文件速度远远小于处理同等大小的大文件的速度。每一个小文件要占用一个slot,而task启动将耗费大量时间甚至大部分时间都耗费在启动task和释放task上。

二、Hadoop自带的解决方案

对于小文件问题,Hadoop本身也提供了几个解决方案,分别为:Hadoop ArchiveSequence fileCombineFileInputFormat

1 Hadoop Archive

Hadoop Archive或者HAR,是一个高效地将小文件放入HDFS块中的文件存档工具,它能够将多个小文件打包成一个HAR文件,这样在减少namenode内存使用的同时,仍然允许对文件进行透明的访问。

使用HAR时需要两点,第一,对小文件进行存档后,原文件并不会自动被删除,需要用户自己删除;第二,创建HAR文件的过程实际上是在运行一个mapreduce作业,因而需要有一个hadoop集群运行此命令。

该方案需人工进行维护,适用管理人员的操作,而且har文件一旦创建,Archives便不可改变,不能应用于多用户的互联网操作。

2 Sequence file

sequence file由一系列的二进制key/value组成,如果为key小文件名,value为文件内容,则可以将大批小文件合并成一个大文件。

Hadoop-0.21.0中提供了SequenceFile,包括WriterReaderSequenceFileSorter类进行写,读和排序操作。如果hadoop版本低于0.21.0的版本,实现方法可参见[3]

 

该方案对于小文件的存取都比较自由,不限制用户和文件的多少,但是SequenceFile文件不能追加写入,适用于一次性写入大量小文件的操作。

 

3CombineFileInputFormat

CombineFileInputFormat是一种新的inputformat,用于将多个文件合并成一个单独的split,另外,它会考虑数据的存储位置。

该方案版本比较老,网上资料甚少,从资料来看应该没有第二种方案好。

 

 

三、小文件问题解决方案

在原有HDFS基础上添加一个小文件处理模块,具体操作流程如下:

       1.   当用户上传文件时,判断该文件是否属于小文件,如果是,则交给小文件处理模块处理,否则,交给通用文件处                理模块处理。

       2.  在小文件模块中开启一定时任务,其主要功能是当模块中文件总size大于HDFSblock大小的文件时,则通                     过SequenceFile组件以文件名做key,相应的文件内容为value将这些小文件一次性写入hdfs模块。

       3. 同时删除已处理的文件,并将结果写入数据库。

       4.  当用户进行读取操作时,可根据数据库中的结果标志来读取文件。

分享到:
评论

相关推荐

    hadoop数据挖掘解决方案.pdf

    【描述】:“Hadoop数据挖掘解决方案.pdf”文件主要探讨了基于Hadoop的数据挖掘平台的分析与设计,以及Hadoop在大数据解决方案中的作用。 【标签】:“互联网” 【内容】:Hadoop是Apache开源项目,用于构建云计算...

    hadoop处理海小文件的改进方法

    #### 三、解决方案探讨 为了克服Hadoop在处理海量小文件时遇到的瓶颈,本节将详细介绍一种改进的方法。 ##### 3.1 文件合并 一种有效的方法是在写入HDFS之前对小文件进行合并处理,即将多个小文件合并成一个较大...

    高可用性的HDFS-Hadoop分布式文件系统深度实践.part1.rar

    《高可用性的HDFS——Hadoop分布式文件系统深度实践》专注于Hadoop分布式文件系统(hdfs)的主流ha解决方案,内容包括:hdfs元数据解析、hadoop元数据备份方案、hadoop backup node方案、avatarnode解决方案以及最新...

    Hadoop高级编程- 构建与实现大数据解决方案

    作为一个开源框架,Hadoop为海量数据的存储、处理和分析提供了高效且可扩展的解决方案。本文将深入探讨“Hadoop高级编程——构建与实现大数据解决方案”这一主题,旨在帮助读者掌握如何利用Hadoop构建实际的大数据...

    windows安装需要的Hadoop库文件

    在Windows环境下搭建Hadoop集群,通常比在Linux系统中更为复杂,因为Hadoop原生是为Linux设计的。...记住,由于Windows与Linux的差异,可能会遇到一些特有的问题,需要查阅文档或社区论坛寻求解决方案。

    Hadoop大数据解决方案

    **Hadoop大数据解决方案** 在当前的信息时代,大数据已经成为企业竞争力的关键因素。Hadoop作为开源的分布式计算框架,为处理海量数据提供了强大支持。本解决方案基于Hadoop生态系统,旨在为企业提供高效、灵活且可...

    hadoop数据挖掘解决方案.docx

    【Hadoop 数据挖掘解决方案】 Hadoop 是一个基于Java的开源框架,主要用于处理和存储大规模数据。它由Apache软件基金会维护,旨在提供分布式文件系统(HDFS)和分布式计算(MapReduce)的能力,使得处理海量数据变...

    实验4:hadoop文件上传.docx

    1. HDFS(Hadoop Distributed File System):HDFS 是 Hadoop 的文件系统,它提供了高可靠性、高吞吐量和高扩展性的存储解决方案。HDFS 由NameNode 和 DataNode 组成,NameNode 负责管理文件系统的命名空间,而 ...

    高可用性的HDFS:Hadoop分布式文件系统深度实践

    第1章 HDFS HA及解决方案 1.1 HDFS系统架构 1.2 HA定义 1.3 HDFS HA原因分析及应对措施 1.3.1 可靠性 1.3.2 可维护性 1.4 现有HDFS HA解决方案 1.4.1 Hadoop的元数据备份方案 1.4.2 Hadoop的SecondaryNameNode方案 ...

    Hadoop分布式文件系统——翻译

    Hadoop分布式文件系统(HDFS)是Hadoop项目的核心组件之一,旨在为大规模数据集提供高效可靠的存储解决方案。HDFS的设计原则强调了数据的分布式存储与处理,通过将计算任务部署在数据所在的节点上,有效提升了数据...

    一种Hadoop小文件存储和读取的方法.

    【Hadoop小文件存储与读取的挑战与解决方案】 在当前大数据时代,Hadoop Distributed File System(HDFS)因其高容错性、可扩展性和成本效益而被广泛应用于各种云计算场景。然而,HDFS最初的设计目标是处理大型文件...

    使用Hadoop分布式文件系统检索云存储中的文件.pdf

    在当今的云计算时代,云存储系统已成为企业和个人存储大量数据的关键解决方案。这些系统由一系列独立的存储服务器组成,通过网络为用户提供服务,允许经过身份验证的用户方便地存储和访问数据。其中,Hadoop分布式...

    高可用性的HDFS-Hadoop分布式文件系统深度实践.part2.rar

    《高可用性的HDFS——Hadoop分布式文件系统深度实践》专注于Hadoop分布式文件系统(hdfs)的主流ha解决方案,内容包括:hdfs元数据解析、hadoop元数据备份方案、hadoop backup node方案、avatarnode解决方案以及最新...

    BeeGFS作为Hadoop文件系统.pdf

    综上所述,BeeGFS作为Hadoop文件系统的主要优点在于它提供了一种性能更优的存储解决方案,可以解决HDFS在某些高要求环境下的局限性,例如在低延迟高吞吐量网络环境中,或者是在需要处理大规模并行IO操作的高性能计算...

    高可用性的HDFS-Hadoop分布式文件系统深度实践.part3.rar

    《高可用性的HDFS——Hadoop分布式文件系统深度实践》专注于Hadoop分布式文件系统(hdfs)的主流ha解决方案,内容包括:hdfs元数据解析、hadoop元数据备份方案、hadoop backup node方案、avatarnode解决方案以及最新...

    高可用性的HDFS-Hadoop分布式文件系统深度实践.part4.rar

    《高可用性的HDFS——Hadoop分布式文件系统深度实践》专注于Hadoop分布式文件系统(hdfs)的主流ha解决方案,内容包括:hdfs元数据解析、hadoop元数据备份方案、hadoop backup node方案、avatarnode解决方案以及最新...

    EMC Hadoop解决方案 PPT

    大数据与Hadoop解决方案是当前信息技术领域的重要议题,它预示着数据管理和分析方法的重大变革。EMC作为信息存储和管理的领先企业,其Hadoop解决方案是针对大数据分析需求而设计的一套系统。 大数据商机在于数据的...

    Hadoop高级编程之构建与实现大数据解决方案

    在提供的“Hadoop高级编程之构建与实现大数据解决方案.pdf”文件中,你将详细了解到以上所述的各个方面,包括理论知识、实践操作和示例代码。通过深入学习这份资料,你将能够熟练掌握Hadoop高级编程技巧,为构建和...

Global site tag (gtag.js) - Google Analytics