Hadoop文件格局初学者指南
几周前,我写了一篇无关Hadoop的文章,并谈到了它的不同局部。 以及它如何在数据工程中表演关键角色。 在本文中,我将总结Hadoop中不同的文件格局。本主题将是一个冗长而极速的主题。 假设您想了解Hadoop的上班原理以及它在数据工程师中的关键作用,请在此处访问我关于Hadoop的文章,或乐于跳过。
Hadoop中的文件格局大抵分为两类:面向行和面向列:
假设仍不分明行和列的方向,请不用担忧,您可以访问此链接,了解它们之间的区别。
以下是在Hadoop系统上宽泛经常使用的一些相关文件格局:
序列文件
存储格局取决于能否紧缩以及经常使用记载紧缩还是块紧缩而有所不同:
地图文件
MapFile是SequenceFile的变体。 将索引减少到SequenceFile并对其启动排序后,它就是MapFile。索引存储为独自的文件,通常每128条记载存储一个索引。 可以将索引加载到内存中以启动极速查找-存储按Key定义的顺序陈列的数据的文件。MapFile记载必定按顺序编写。 否则,将引发IOException。
MapFile的派生类型:
Hadoop系统上方列出的文件包括RCFile,ORCFile和Parquet。 Avro的面向列的版本是Trevni。
RC文件
Hive的Record Columnar File(记载列文件),这种类型的文件首先将数据按行划分为行组,而后内行组外部将数据存储在列中。其结构如下:
ORC文件
ORCFile(提升的记载列文件)提供了比RCFile更有效的文件格局。 它在外部将数据划分为自动大小为250M的Stripe。每个条带均蕴含索引,数据和页脚。 索引存储每列的最大值和最小值以及列中每一行的位置。
在Hive中,以下命令用于经常使用ORCFile:
CREATE TABLE ...STORED AAS ORC ALTER TABLE ... SET FILEFORMAT ORC SEThive.default.fileformat=ORC
一种通用的基于列的存储格局,基于Google的Dremel。 特意长于解决深度嵌套的数据。
关于嵌套结构,Parquet会将其转换为平面列存储,该存储由重复级别和定义级别(R和D)示意,并在读取数据以重建整个文件时经常使用元数据来重建记载。 结构体。以下是R和D的示例:
AddressBook { contacts: { phoneNumber: "555 987 6543" } contacts: { } }AddressBook { }
就这样,如今,您知道了Hadoop中不同的文件格局。 假设您发现任何失误并提出倡导,请随时与我咨询。 您可以在我的LinkedIn上与我咨询。