更新时间:2021-03-11 来源:黑马程序员 浏览量:

问题分析
Hadoop可以存储多种文件格式。Sequence File这个格式需要知道。
核心答案讲解
1.sequenceFile文件是Hadoop用来存储二进制形式的[Key,Value]对而设计的一种平面文件(Flat File)。问题扩展
HDFS文件存储格式
Hive数据表的默认格式,存储方式:行存储。可以使用Gzip压缩算法,但压缩后的文件不支持split。在反序列化过程中,必须逐个字符判断是不是分隔符和行结束符,因此反序列化开销会比SequenceFile高几十倍。
压缩数据文件可以节省磁盘空间,但Hadoop中有些原生压缩文件的缺点之一就是不支持分割。支持分割的文件可以并行的有多个mapper程序处理大数据文件,大多数文件不支持可分割是因为这些文件只能从头开始读。Sequence File是可分割的文件格式,支持Hadoop的block级压缩。
Hadoop API提供的一种二进制文件,以key-value的形式序列化到文件中。存储方式:行存储。
sequencefile支持三种压缩选择:NONE,RECORD,BLOCK。Record压缩率低,RECORD是默认选项,通常BLOCK会带来较RECORD更好的压缩性能。
优势是文件和hadoop api中的MapFile是相互兼容的。
存储方式:数据按行分块,每块按列存储。结合了行存储和列存储的优点,RCFile 保证同一行的数据位于同一节点,因此元组重构的开销很低,像列存储一样,RCFile 能够利用列维度的数据压缩,并且能跳过不必要的列读取。
数据追加:RCFile不支持任意方式的数据写操作,仅提供一种追加接口,这是因为底层的 HDFS当前仅仅支持数据追加写文件尾部。
行组大小:行组变大有助于提高数据压缩的效率,但是可能会损害数据的读取性能,因为这样增加了 Lazy 解压性能的消耗。而且行组变大会占用更多的内存,这会影响并发执行的其他MR作业。 考虑到存储空间和查询效率两个方面,Facebook 选择 4MB 作为默认的行组大小,当然也允许用户自行选择参数进行配置。
存储方式:数据按行分块,每块按照列存储。压缩快,快速列存取。效率比rcfile高,是rcfile的改良版本。
结合项目中使用
SequenceFile压缩率最低,查询速度一般。项目中存储小的二进制文件,用Sequence File这个格式。
猜你喜欢:
毕业16个工作日,平均薪资13180元,就业率100%,广州黑马AI智能应用开发(Java)学科20250529班
2026-03-06毕业32个工作日,平均薪资11147元,就业率95%,广州黑马AI智能应用开发(Java)学科20250326班
2026-03-05黑马程序员2025全国就业数据发布:全学科平均就业率92.07%,AI开发类就业平均薪资达11869.67元。
2026-03-05黑马全国校区齐开班!场面太太太壮观了!
2026-03-03AI智能应用开发课程紧贴企业刚需,全程高效学习,直达中高级软件开发水平
2026-02-28风口正劲!黑马程序员又一AI智能应用开发班毕业当天100%就业!
2026-02-27