`
085567
  • 浏览: 219103 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hadoop 数据类型与文件结构剖析 Sequence, Map, Set, Array, BloomMap Files

阅读更多

今天要推荐的一篇文章发表在知名云存储提供商 Cloudera 的博客,本文细致且图文并茂地讲解了 Hadoop 的几种典型文件结构及他们之前的关系。NoSQLFan 将主要内容翻译整理如下(如有错漏,欢迎指正):

1.Hadoop’s SequenceFile

SequenceFile 是 Hadoop 的一个重要数据文件类型,它提供key-value的存储,但与传统key-value存储(比如hash表,btree)不同的是,它是 appendonly的,于是你不能对已存在的key进行写操作。每一个key-value记录如下图,不仅保存了key,value值,也保存了他们的 长度。

SequenceFile 有三种压缩态:

  1. Uncompressed – 未进行压缩的状态
  2. Record Compressed - 对每一条记录的value值进行了压缩(文件头中包含上使用哪种压缩算法的信息)
  3. Block-Compressed – 当数据量达到一定大小后,将停止写入进行整体压缩,整体压缩的方法是把所有的keylength,key,vlength,value 分别合在一起进行整体压缩

文件的压缩态标识在文件开头的header数据中。

在header数据之后是一个Metadata数据,他是简单的属性/值对,标识文件的一些其他信息。Metadata 在文件创建时就写好了,所以也是不能更改的。

2.MapFile, SetFile, ArrayFile 及 BloomMapFile

SequenceFile 是Hadoop 的一个基础数据文件格式,后续讲的 MapFile, SetFile, ArrayFile 及 BloomMapFile 都是基于它来实现的。

  • MapFile – 一个key-value 对应的查找数据结构,由数据文件/data 和索引文件 /index 组成,数据文件中包含所有需要存储的key-value对,按key的顺序排列。索引文件包含一部分key值,用以指向数据文件的关键位置。
  • SetFile – 基于 MapFile 实现的,他只有key,value为不可变的数据。
  • ArrayFile – 也是基于 MapFile 实现,他就像我们使用的数组一样,key值为序列化的数字。
  • BloomMapFile – 他在 MapFile 的基础上增加了一个 /bloom 文件,包含的是二进制的过滤表,在每一次写操作完成时,会更新这个过滤表。

原文链接:Hadoop I/O: Sequence, Map, Set, Array, BloomMap Files

分享到:
评论

相关推荐

    Hadoop数据分析_大数据_hadoop_数据分析_

    MapReduce是Hadoop用于大规模数据处理的编程模型,由“Map”阶段(数据分发和预处理)和“Reduce”阶段(聚合和总结数据)组成。 Hadoop生态系统的其他重要组件还包括: 1. **YARN(Yet Another Resource ...

    基于Hadoop的电影影评数据分析

    【基于Hadoop的电影影评数据分析】是一项大数据课程的大作业,旨在利用Hadoop的分布式处理能力来分析电影影评数据。Hadoop是一个由Apache软件基金会开发的开源框架,专为处理和存储大规模数据而设计。它由四个核心...

    基于Hadoop豆瓣电影数据分析实验报告

    2. **数据导入**:将数据文件(如data.txt)复制到Hadoop环境,创建Hive数据库和表结构,字段包括电影ID、名称、投票人数、类型、产地、上映时间、时长、年代、评分和首映地点。使用LOAD DATA命令将数据加载到Hive表...

    基于Hadoop数据分析系统设计(需求分析).docx

    这包括理解企业的具体业务需求,确定需要分析的数据类型,以及预期的分析结果。例如,企业可能需要对用户点击流数据进行分析,以了解用户偏好、消费行为,或用于预测市场趋势。 在实际部署Hadoop集群时,首先要考虑...

    hadoop的默认配置文件

    Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它允许在廉价硬件上处理大量数据,提供了高可靠性、高扩展性和高效能的数据存储与处理能力。Hadoop的核心组件包括HDFS(Hadoop Distributed File System)、...

    Hadoop数据迁移--从Oracle向Hadoop

    这样,Oracle中的数据就成功地迁移到了Hadoop文件系统中,可以被用于大数据分析和其他相关处理。 使用MapReduce进行数据迁移的好处是可以有效地处理大量数据,同时MapReduce框架能够自动处理数据的并行处理、负载...

    基于Hadoop网站流量日志数据分析系统.zip

    基于Hadoop网站流量日志数据分析系统 1、典型的离线流数据分析系统 2、技术分析 - Hadoop - nginx - flume - hive - mysql - springboot + mybatisplus+vcharts nginx + lua 日志文件埋点的 基于Hadoop网站流量...

    Hadoop示例程序合并文件

    - 非结构化数据:支持各种类型的数据,无需预先定义数据模式。 3. 文件合并过程: 在Hadoop环境中,文件合并通常涉及使用MapReduce作业。这个示例程序可能包含以下步骤: - 分割输入文件:首先,HDFS会根据预设...

    Hadoop豆瓣电影数据分析(Hadoop)操作源码

    Hadoop豆瓣电影数据分析(Hadoop)操作源码

    Hadoop数据迁移--从Hadoop向Oracle

    1. 在Map阶段,程序读取HDFS中的数据文件,将数据分割成可以处理的块,并为每个块创建键值对,键通常与Oracle数据库的表结构相对应,值则是需要迁移的数据。 2. Map任务的输出将发送给Reduce任务,但在此场景中可能...

    基于hadoop的数据分析系统.zip

    《基于Hadoop的数据分析系统详解》 在当今大数据时代,数据的价值日益凸显,而有效处理海量数据的关键技术之一就是Hadoop。Hadoop是Apache软件基金会开发的一个开源框架,专门用于处理和存储大规模数据,尤其适合...

    基于Hadoop Hive健身馆可视化分析平台项目源码+数据库文件.zip

    基于Hadoop Hive健身馆可视化分析平台项目源码+数据库文件.zip启动方式 环境启动 hadoop hive2元数据库 sql导入 导入hivesql脚本,修改application.yml 启动主程序 HadoopApplication 基于Hadoop Hive健身馆可视化...

    大数据分析-网站日志数据文件(Hadoop部署分析资料)

    至此,我们通过Python网络爬虫手段进行数据抓取,将我们网站数据(2013-05-30,2013-05-31)保存为两个日志文件,由于文件大小超出我们一般的分析工具处理的范围,故借助Hadoop来完成本次的实践。 使用python对原始...

    大数据云计算技术 淘宝网Hadoop与数据分析 taobao数据团队(共30页).ppt

    《大数据云计算技术:淘宝网Hadoop与数据分析》 在当今的信息时代,大数据和云计算已经成为了信息技术领域的核心组成部分。淘宝网作为中国最大的电子商务平台,其背后的数据处理能力是其成功的关键之一。本篇将深入...

    《Hadoop海量数据处理》高清完整PDF版

    在这一部分,读者将学习如何利用Hadoop进行日志分析、数据分析、机器学习等操作,掌握数据仓库的概念以及如何构建大数据仓库,同时会探讨Hadoop生态系统中其他重要组件如Hive、Pig、Sqoop和Flume的使用方法。...

    hadoop/bin目录文件,含hadoop.dll + winutils.exe

    而Hive是基于Hadoop的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,因此在Windows环境下,通过这些工具可以方便地进行Hive的开发和调试工作。 标签“spark hadoop”暗示了这些文件...

    Hadoop默认的配置文件

    Hadoop的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce,它们各自都有自己的默认配置文件,这些配置文件是Hadoop运行时的重要组成部分。在你提到的压缩包文件中,我们能看到四个主要的默认配置...

    第四章(Hadoop大数据处理实战)Hadoop分布式文件系统.pdf

    第四章(Hadoop大数据处理实战)Hadoop分布式文件系统.pdf第四章(Hadoop大数据处理实战)Hadoop分布式文件系统.pdf第四章(Hadoop大数据处理实战)Hadoop分布式文件系统.pdf第四章(Hadoop大数据处理实战)Hadoop分布式文件...

Global site tag (gtag.js) - Google Analytics