`
tenght
  • 浏览: 50820 次
社区版块
存档分类
最新评论

[hadoop2.7.1]I/O之tfile

 
阅读更多

在这儿做个记录吧

org.apache.hadoop.io.file.tfile.TFile

@Public
@Evolving
ATFileisacontainerofkey-valuepairs.Bothkeysandvaluesaretype-lessbytes.Keysarerestrictedto64KB,valuelengthisnotrestricted(practicallylimitedtotheavailablediskstorage).TFilefurtherprovidesthefollowingfeatures:
BlockCompression.
Namedmetadatablocks.
Sortedorunsortedkeys.
Seekbykeyorbyfileoffset.
ThememoryfootprintofaTFileincludesthefollowing:
Someconstantoverheadofreadingorwritingacompressedblock.
Eachcompressedblockrequiresonecompression/decompressioncodecforI/O.
Temporaryspacetobufferthekey.
Temporaryspacetobufferthevalue(forTFile.Writeronly).Valuesarechunkencoded,sothatwebufferatmostonechunkofuserdata.Bydefault,thechunkbufferis1MB.Readingchunkedvaluedoesnotrequireadditionalmemory.
TFileindex,whichisproportionaltothetotalnumberofDataBlocks.Thetotalamountofmemoryneededtoholdtheindexcanbeestimatedas(56+AvgKeySize)*NumBlocks.MetaBlockindex,whichisproportionaltothetotalnumberofMetaBlocks.ThetotalamountofmemoryneededtoholdtheindexforMetaBlockscanbeestimatedas(40+AvgMetaBlockName)*NumMetaBlock.
ThebehaviorofTFilecanbecustomizedbythefollowingvariablesthroughConfiguration:
tfile.io.chunk.size:Valuechunksize.Integer(inbytes).Defaultto1MB.Valuesofthelengthlessthanthechunksizeisguaranteedtohaveknownvaluelengthinreadtime(SeeTFile.Reader.Scanner.Entry.isValueLengthKnown()).
tfile.fs.output.buffer.size:BuffersizeusedforFSDataOutputStream.Integer(inbytes).Defaultto256KB.
tfile.fs.input.buffer.size:BuffersizeusedforFSDataInputStream.Integer(inbytes).Defaultto256KB.
Suggestionsonperformanceoptimization.
Minimumblocksize.Werecommendasettingofminimumblocksizebetween256KBto1MBforgeneralusage.Largerblocksizeispreferrediffilesareprimarilyforsequentialaccess.However,itwouldleadtoinefficientrandomaccess(becausetherearemoredatatodecompress).Smallerblocksaregoodforrandomaccess,butrequiremorememorytoholdtheblockindex,andmaybeslowertocreate(becausewemustflushthecompressorstreamattheconclusionofeachdatablock,whichleadstoanFSI/Oflush).Further,duetotheinternalcachinginCompressioncodec,thesmallestpossibleblocksizewouldbearound20KB-30KB.
Thecurrentimplementationdoesnotoffertruemulti-threadingforreading.TheimplementationusesFSDataInputStreamseek()+read(),whichisshowntobemuchfasterthanpositioned-readcallinsinglethreadmode.However,italsomeansthatifmultiplethreadsattempttoaccessthesameTFile(usingmultiplescanners)simultaneously,theactualI/OiscarriedoutsequentiallyeveniftheyaccessdifferentDFSblocks.
Compressioncodec.Use"none"ifthedataisnotverycompressable(bycompressable,Imeanacompressionratioatleast2:1).Generally,use"lzo"asthestartingpointforexperimenting."gz"oversslightlybettercompressionratioover"lzo"butrequires4xCPUtocompressand2xCPUtodecompress,comparingto"lzo".
Filesystembuffering,iftheunderlyingFSDataInputStreamandFSDataOutputStreamisalreadyadequatelybuffered;orifapplicationsreads/writeskeysandvaluesinlargebuffers,wecanreducethesizesofinput/outputbufferinginTFilelayerbysettingtheconfigurationparameters"tfile.fs.input.buffer.size"and"tfile.fs.output.buffer.size".

分享到:
评论

相关推荐

    hadoop2.7.1 windows缺少的文件winutils.exe,hadoop.dll

    下载winutils.exe,hadoop.dll放到hadoop环境的bin目录,建议尽量使用版本匹配的,必然hadoop-2.6就使用2.6版本的。2.7版本就使用2.7.。理论上2.7版本可以使用在2.6版本上

    hadoop-2.7.1.zip

    Hadoop 2.7.1是Hadoop发展过程中的一个重要版本,它提供了许多增强特性和稳定性改进,使得大规模数据处理更加高效和可靠。在这个版本中,Hadoop的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce,...

    Hadoop安装教程_单机/伪分布式配置_Hadoop2.7.1/Ubuntu 16.04

    Hadoop安装教程_单机/伪分布式配置_Hadoop2.7.1/Ubuntu 16.04 本教程主要讲述了在 Ubuntu 16.04 环境下安装 Hadoop 2.7.1 的步骤,包括单机模式、伪分布式模式和分布式模式三种安装方式。以下是本教程的知识点总结...

    hadoop2.7.1.rar

    标题中的"hadoop2.7.1.rar"表明这是一个关于Apache Hadoop的压缩文件,具体版本为2.7.1。Hadoop是一个开源框架,主要用于分布式存储和计算,它由Apache软件基金会开发,广泛应用于大数据处理领域。这个压缩包可能是...

    hadoop-2.7.1

    1. **HDFS(Hadoop Distributed File System)**:Hadoop的核心组件之一,是一个分布式文件系统,旨在跨多台机器提供高容错性和高吞吐量的数据访问。HDFS通过将大文件分割成块并在集群中的多个节点上存储来实现这...

    hadoop2.7.1 eclipse插件

    hadoop2.7.1的eclipse插件,编译环境,eclipse 4.4(luna) ,jdk1.7,ant1.9.6,maven3.3,hadoop2.7.1,centos6.7,jdk1.7 要注意的是开发黄金下jdk版本必须是jdk1.7及以上,否则无法使用

    Hadoop2.7.1中文文档

    Hadoop2.7.1是Hadoop发展中的一个重要版本,它在前一个版本的基础上进行了一系列的优化和改进,增强了系统的稳定性和性能。这个压缩包文件包含的是Hadoop2.7.1的中文文档,对于学习和理解Hadoop的运作机制、配置以及...

    hadoop 2.7.1

    在使用Hadoop时,需要注意数据的分块策略,合理设置Block Size以优化I/O效率。同时,为了保证数据安全,定期进行NameNode的快照备份是必要的。此外,监控系统性能,如磁盘使用率、CPU和内存使用情况,以及网络带宽,...

    hadoop2.7.1的Windows版本

    Hadoop 2.7.1是其一个重要的版本,提供了许多性能优化和功能增强。然而,Hadoop最初设计的目标是在Linux环境下运行,因此,直接在Windows系统上运行可能会遇到兼容性问题。为了在Windows上成功部署并运行Hadoop ...

    hadoop.zip hadoop2.7.1安装包

    在Hadoop2.7.1安装包中,`hadoop-2.7.1.tar.gz`是主要的发布文件,包含了Hadoop的所有组件和依赖库。这个tarball文件通常在Linux环境下使用,通过解压缩可以得到Hadoop的源代码和二进制文件。用户需要配置环境变量、...

    eclipse hadoop2.7.1 plugin 配置

    `eclipse hadoop2.7.1 plugin`是为了方便开发者在Eclipse中进行Hadoop项目开发而设计的插件。本文将详细介绍如何配置Eclipse以支持Hadoop 2.7.1,并讨论相关的知识点。 首先,配置Eclipse Hadoop插件的步骤如下: ...

    hadoop2.7.1平台搭建

    hadoop2.7.1平台搭建

    hadoop2.7.1-win32.zip

    标题 "hadoop2.7.1-win32.zip" 指示了这是一个适用于Windows 32位操作系统的Hadoop版本,具体为2.7.1。Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它允许在大量计算机节点上处理和存储海量数据。这个...

    winutils.exe_hadoop-2.7.1

    《Hadoop Winutils.exe在2.7.1版本中的应用与配置详解》 Hadoop作为一个分布式计算框架,广泛应用于大数据处理领域。在Windows环境中,Winutils.exe和hadoop.dll是Hadoop的重要组成部分,它们为Hadoop在Windows上的...

    hadoop-2.7.1.tar.gz

    标题中的"hadoop-2.7.1.tar.gz"是一个压缩包文件,它是Apache Hadoop的2.7.1版本。Hadoop是一个开源框架,主要用于分布式存储和计算,它使得处理和存储海量数据变得可能。".tar.gz"是Linux/Unix系统中常用的文件压缩...

    hadoop2.7.1版本的hadoop.dll,winutils.exe

    Hadoop 2.7.1是这个框架的一个重要版本,它包含了各种优化和改进,以提高数据处理的效率和稳定性。在这个版本中,有两个关键的组件是hadoop.dll和winutils.exe,它们在Windows环境下运行Hadoop时扮演着至关重要的...

    hadoop-2.7.1.rar

    同时,此版本还对 HDFS 和 MapReduce 进行了性能优化,例如更快的数据读写速度、更高效的磁盘 I/O 和网络通信等。 在实际应用中,Hadoop 2.7.1 可用于各种场景,如日志分析、推荐系统、图像处理、生物信息学研究等...

    Spark所需的hadoop2.7.1相关资源

    Hadoop2.7.1是Hadoop的一个重要版本,它带来了许多改进和优化,而Spark则是一个快速、通用且可扩展的数据处理框架,尤其在处理大规模数据时表现出色。Spark与Hadoop的兼容性是确保大数据工作流流畅运行的关键。 ...

    hadoop-2.7.1 64位编译包 part1

    本人用7个多小时成功编译 hadoop 2.7.1 64位编译包(JDK1.8 64),由于文件太大,分3卷压缩。 hadoop 2.7.1 相对于2.7.0修复了上百个Bug,是可用于生产环境的版本了。

Global site tag (gtag.js) - Google Analytics