Hadoop文件存储格式

1. TextFile

默认格式,存储方式为行存储,数据不做压缩,磁盘开销大,数据解析开销大。可结合 Gzip、Bzip2 使用(系统自动检查,执行查询时自动解压),但使用 这种方式,压缩后的文件不支持 split,Hive 不会对数据进行切分,从而无法对数据进行并行操作。并且在反序列化过程中,必须逐个字符判断是不是分隔符和行结束符,因此反序列化开销会比 SequenceFile 高几十倍

2. SequenceFile

SequenceFile 是 Hadoop API 提供的一种二进制文件支持,存储方式为行存储,其具有使用方便、可分割、可压缩的特点。

SequenceFile 支持三种压缩选择:NONE,RECORD,BLOCK。Record 压缩率低,一般建议使用 BLOCK 压缩。

优势是文件和 hadoop api 中的 MapFile 是相互兼容的 。

3、RCFile

存储方式:数据按行分块,每块按列存储。结合了行存储和列存储的优点:

首先,RCFile 保证同一行的数据位于同一节点,因此元组重构的开销很低 ;

其次,像列存储一样,RCFile 能够利用列维度的数据压缩,并且能跳过不必要的列读取;

4、ORCFile(下文详细阐述)

存储方式:数据按行分块 每块按照列存储。

压缩快、快速列存取。

效率比 RCfile 高,是 RCfile 的改良版本。

5、Parquet

Parquet文件是以二进制方式存储的,所以是不可以直接读取的,文件中包括该文件的数据和元数据,因此Parquet格式文件是自解析的。

Apache Parquet 最初的设计动机是存储嵌套式数据,比如Protocolbuffer thrift json 等 将这类数据存储成列式格式以方便对其高效压缩和编码,且使用更少的IO操作取出需要的数据

总结:

相比 TEXTFILE 和 SEQUENCEFILE,RCFILE 由于列式存储方式,数据加载时性能消耗较大,但是具有较好的压缩比和查询响应。

数据仓库的特点是一次写入、多次读取,因此,整体来看,RCFILE 相比其余两种格式具有较明显的优势。

相关推荐
虫小宝1 小时前
返利app的消息队列架构:基于RabbitMQ的异步通信与解耦实践
分布式·架构·rabbitmq
We....2 小时前
Java分布式编程:RMI机制
java·开发语言·分布式
在未来等你2 小时前
Elasticsearch面试精讲 Day 18:内存管理与JVM调优
大数据·分布式·elasticsearch·搜索引擎·面试
We....2 小时前
Java 分布式缓存实现:结合 RMI 与本地文件缓存
java·分布式·缓存
Chasing__Dreams2 小时前
kafka--基础知识点--5.3--producer事务
分布式·kafka
小枫编程2 小时前
Spring Boot 调度任务在分布式环境下的坑:任务重复执行与一致性保证
spring boot·分布式·后端
智海观潮2 小时前
Spark SQL | 目前Spark社区最活跃的组件之一
大数据·spark
Lx3522 小时前
Hadoop数据一致性保障:处理分布式系统常见问题
大数据·hadoop
婲落ヽ紅顏誶3 小时前
测试es向量检索
大数据·elasticsearch·搜索引擎
IT学长编程4 小时前
计算机毕业设计 基于Hadoop豆瓣电影数据可视化分析设计与实现 Python 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试
大数据·hadoop·python·django·毕业设计·毕业论文·豆瓣电影数据可视化分析