`

hadoop SequenceFile 详解

阅读更多
hadoop SequenceFile 详解


SequenceFile 是一个由二进制序列化过的key/value的字节流组成的文本存储文件,它可以在map/reduce过程中的input/output 的format时被使用。在map/reduce过程中,map处理文件的临时输出就是使用SequenceFile处理过的。
SequenceFile分别提供了读、写、排序的操作类。
SequenceFile的操作中有三种处理方式:
1)        不压缩数据直接存储。 //enum.NONE
2)        压缩value值不压缩key值存储的存储方式。//enum.RECORD
3)        key/value值都压缩的方式存储。//enum.BLOCK

SequenceFile提供了若干Writer的构造静态获取。
//SequenceFile.createWriter();

SequenceFile.Reader使用了桥接模式,可以读取SequenceFile.Writer中的任何方式的压缩数据。

三种不同的压缩方式是共用一个数据头,流方式的读取会先读取头字节去判断是哪种方式的压缩,然后根据压缩方式去解压缩并反序列化字节流数据,得到可识别的数据。

流的存储头字节格式:
Header:
*字节头”SEQ”, 后跟一个字节表示版本”SEQ4”,”SEQ6”.//这里有点忘了 不记得是怎么处理的了,回头补上做详细解释
*keyClass name
*valueClass name
*compression boolean型的存储标示压缩值是否转变为keys/values值了
*blockcompression boolean型的存储标示是否全压缩的方式转变为keys/values值了
*compressor 压缩处理的类型,比如我用Gzip压缩的Hadoop提供的是GzipCodec什么的..
*元数据 这个大家可看可不看的

所有的String类型的写操作被封装为Hadoop的IO API,Text类型writeString()搞定。

未压缩的和只压缩values值的方式的字节流头部是类似的:
*Header
*RecordLength记录长度
*key Length key值长度
*key 值
*是否压缩标志 boolean
0
3
分享到:
评论

相关推荐

    Hadoop: The Definitive Guide 中英两版

    5. **数据输入与输出**:了解多种数据源的接入方式,如SequenceFile、TextFile等,以及如何通过InputFormat和OutputFormat自定义处理。 6. **Hadoop的监控与调试**:学习如何使用Nagios、Ganglia等工具监控集群状态...

    Hadoop文件的存储格式实例详解

    本篇文章将深入探讨Hadoop文件的存储格式,尤其是SequenceFile格式,它是一种广泛使用的二进制文件格式,适合大规模数据处理。 首先,我们要了解最基础的1.txt纯文本格式。这种格式是最直观易读的,它由多行记录...

    hadoop学习资料地址

    ### Hadoop 学习资源详解 #### 一、概述 Hadoop是一款开源的大数据处理框架,主要用于存储和处理大规模的数据集。它通过分布式文件系统(HDFS)来存储数据,并利用MapReduce编程模型来处理这些数据。对于希望深入...

    hadoop+ha+hive+mapreduce

    【HDFS详解】HDFS(Hadoop Distributed File System)是Hadoop的核心组件,用于存储大数据。它将大文件分割成块,并将这些块分布在集群的不同节点上,实现数据的冗余和容错。HDFS遵循主从结构,由NameNode管理元数据...

    Hadoop权威指南第三版

    - **文件结构**: 除了传统的文件系统外,Hadoop还支持一些特殊的数据结构,如SequenceFile和MapFile,这些结构可以更高效地存储和检索数据。 #### 五、MapReduce应用程序开发 - **配置API**: MapReduce应用程序...

    Hadoop在电信大数据平台的研究与设计.pdf

    - 使用Hadoop的SequenceFile或CompositeFileFormat等格式,将小文件批量写入到大文件中,减少I/O操作。 3. Hadoop技术框架详解 Hadoop的核心由两大部分组成:MapReduce和HDFS。MapReduce是一种编程模型,用于大规模...

    Hadoop C++ 扩展

    ### Hadoop C++ 扩展技术详解 #### 一、背景简介 随着大数据处理需求的增加,Hadoop作为主流的大规模分布式数据处理框架之一,在处理海量数据时面临着一系列挑战。尤其是当任务数量巨大时,Hadoop系统中的Java...

    Hadoop实战(第2版)

    - **配置文件详解**:详细介绍Hadoop的关键配置文件,如core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml等,以及它们各自的参数含义。 - **集群管理**:涵盖如何启动和关闭Hadoop服务、监控集群状态...

    hadoop,map,reduce,hdfs

    ### Hadoop、MapReduce与HDFS详解 #### Hadoop简介及历史 Hadoop是一个开源软件框架,用于存储大型数据集并进行分布式处理。它最初由雅虎开发,并于2006年开源发布。Hadoop的设计灵感来源于Google的两篇论文——...

    把Hadoop大数据系统架构讲明白了.pdf

    【Hadoop大数据系统架构详解】 Hadoop是一种针对大数据处理的开源框架,它的出现解决了传统系统在处理大规模、结构多变数据时的局限性。由于高性能硬件和专用服务器的成本高昂且灵活性不足,Hadoop利用互联的廉价...

    《hadoop权威指南》英文版第三版

    - **文件结构**:本书还介绍了一些特殊类型的文件结构,如SequenceFile和MapFile,它们适用于不同的场景。 #### 六、MapReduce应用程序开发 - **配置API**:提供了详细的指南来配置MapReduce作业,包括如何设置输入...

    hadoop相关知识习题

    【Hadoop相关知识习题详解】 1. HBase源自Google的BigTable博文,它是一个分布式、面向列的NoSQL数据库,特别适用于大数据处理。 2. HBase的特性包括:高可靠性、高性能、面向列和可伸缩性。它是基于HDFS存储底层...

    大数据技术分享 Hadoop运行原理分析 共3页.pdf

    #### 四、Hadoop程序运行流程详解 1. **main()函数**:在这个函数中,开发者首先创建一个`JobConf`对象来配置作业。接下来定义Mapper、Reducer、InputFormat和OutputFormat,最后提交作业到JobTracker。 2. **...

    Hadoop源代码分析(MapReduce概论)

    例如,TextInputFormat用于处理文本文件,而SequenceFileInputFormat则用于处理SequenceFile格式的数据。 2. **MapReduce核心组件** - **JobTracker**:负责接收客户端提交的作业,并调度作业到TaskTracker节点上...

    Hive的案例详解.pdf

    2. **灵活性**:Hive支持多种数据存储格式,例如文本文件、CSV文件、SequenceFile等,并且还支持自定义数据存储格式,这使得Hive能够灵活应对各种不同的数据来源和需求。 3. **可扩展性**:Hive的设计使其能够轻松地...

    Hive中SQL详解

    Hive中SQL详解 Hive是一个基于Hadoop构建的数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop分布式文件系统中的数据。 Hive SQL支持绝大多数的语句,如DDL、DML、聚合函数、连接查询、条件查询等。 ...

Global site tag (gtag.js) - Google Analytics