今天要推荐的一篇文章发表在知名云存储提供商 Cloudera 的博客,本文细致且图文并茂地讲解了 Hadoop 的几种典型文件结构及他们之前的关系。NoSQLFan
将主要内容翻译整理如下(如有错漏,欢迎指正):
1.Hadoop’s SequenceFile
SequenceFile 是 Hadoop
的一个重要数据文件类型,它提供key-value的存储,但与传统key-value存储(比如hash表,btree)不同的是,它是
appendonly的,于是你不能对已存在的key进行写操作。每一个key-value记录如下图,不仅保存了key,value值,也保存了他们的
长度。
SequenceFile 有三种压缩态:
-
Uncompressed
– 未进行压缩的状态
-
Record Compressed
- 对每一条记录的value值进行了压缩(文件头中包含上使用哪种压缩算法的信息)
-
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
分享到:
相关推荐
MapReduce是Hadoop用于大规模数据处理的编程模型,由“Map”阶段(数据分发和预处理)和“Reduce”阶段(聚合和总结数据)组成。 Hadoop生态系统的其他重要组件还包括: 1. **YARN(Yet Another Resource ...
【基于Hadoop的电影影评数据分析】是一项大数据课程的大作业,旨在利用Hadoop的分布式处理能力来分析电影影评数据。Hadoop是一个由Apache软件基金会开发的开源框架,专为处理和存储大规模数据而设计。它由四个核心...
2. **数据导入**:将数据文件(如data.txt)复制到Hadoop环境,创建Hive数据库和表结构,字段包括电影ID、名称、投票人数、类型、产地、上映时间、时长、年代、评分和首映地点。使用LOAD DATA命令将数据加载到Hive表...
这包括理解企业的具体业务需求,确定需要分析的数据类型,以及预期的分析结果。例如,企业可能需要对用户点击流数据进行分析,以了解用户偏好、消费行为,或用于预测市场趋势。 在实际部署Hadoop集群时,首先要考虑...
Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它允许在廉价硬件上处理大量数据,提供了高可靠性、高扩展性和高效能的数据存储与处理能力。Hadoop的核心组件包括HDFS(Hadoop Distributed File System)、...
这样,Oracle中的数据就成功地迁移到了Hadoop文件系统中,可以被用于大数据分析和其他相关处理。 使用MapReduce进行数据迁移的好处是可以有效地处理大量数据,同时MapReduce框架能够自动处理数据的并行处理、负载...
基于Hadoop网站流量日志数据分析系统 1、典型的离线流数据分析系统 2、技术分析 - Hadoop - nginx - flume - hive - mysql - springboot + mybatisplus+vcharts nginx + lua 日志文件埋点的 基于Hadoop网站流量...
- 非结构化数据:支持各种类型的数据,无需预先定义数据模式。 3. 文件合并过程: 在Hadoop环境中,文件合并通常涉及使用MapReduce作业。这个示例程序可能包含以下步骤: - 分割输入文件:首先,HDFS会根据预设...
Hadoop豆瓣电影数据分析(Hadoop)操作源码
1. 在Map阶段,程序读取HDFS中的数据文件,将数据分割成可以处理的块,并为每个块创建键值对,键通常与Oracle数据库的表结构相对应,值则是需要迁移的数据。 2. Map任务的输出将发送给Reduce任务,但在此场景中可能...
Hadoop 文件上传失败原因分析及解决方法 本文主要讨论了在 Java Web 程序中上传文件到 Hadoop HDFS 文件系统中失败的原因分析及解决方法。通过对问题的分析和解决,可以总结出以下知识点: 1. Hadoop 文件上传失败...
《基于Hadoop的数据分析系统详解》 在当今大数据时代,数据的价值日益凸显,而有效处理海量数据的关键技术之一就是Hadoop。Hadoop是Apache软件基金会开发的一个开源框架,专门用于处理和存储大规模数据,尤其适合...
使用hadoop进行数据分析天气数据分析.zip使用hadoop进行数据分析天气数据分析.zip使用hadoop进行数据分析天气数据分析.zip使用hadoop进行数据分析天气数据分析.zip使用hadoop进行数据分析天气数据分析.zip使用hadoop...
基于Hadoop Hive健身馆可视化分析平台项目源码+数据库文件.zip启动方式 环境启动 hadoop hive2元数据库 sql导入 导入hivesql脚本,修改application.yml 启动主程序 HadoopApplication 基于Hadoop Hive健身馆可视化...
至此,我们通过Python网络爬虫手段进行数据抓取,将我们网站数据(2013-05-30,2013-05-31)保存为两个日志文件,由于文件大小超出我们一般的分析工具处理的范围,故借助Hadoop来完成本次的实践。 使用python对原始...
《大数据云计算技术:淘宝网Hadoop与数据分析》 在当今的信息时代,大数据和云计算已经成为了信息技术领域的核心组成部分。淘宝网作为中国最大的电子商务平台,其背后的数据处理能力是其成功的关键之一。本篇将深入...
在这一部分,读者将学习如何利用Hadoop进行日志分析、数据分析、机器学习等操作,掌握数据仓库的概念以及如何构建大数据仓库,同时会探讨Hadoop生态系统中其他重要组件如Hive、Pig、Sqoop和Flume的使用方法。...
而Hive是基于Hadoop的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,因此在Windows环境下,通过这些工具可以方便地进行Hive的开发和调试工作。 标签“spark hadoop”暗示了这些文件...