加入收藏 | 设为首页 | 会员中心 | 我要投稿 新余站长网 (https://www.0790zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数据新人应该知道的Hadoop中的各种文件格式

发布时间:2021-06-05 10:41:09 所属栏目:大数据 来源:互联网
导读:Hadoop中的文件格式大致分为两类:面向行和面向列: 面向行:在一起存储的同一行数据是连续存储:SequenceFile,MapFile,Avro Datafile。 这样,如果仅需要访问该行的少量数据,则需要将整个行读入存储器。 延迟序列化可以将问题减轻到一定程度,但是无法取
Hadoop中的文件格式大致分为两类:面向行和面向列:
面向行:在一起存储的同一行数据是连续存储:SequenceFile,MapFile,Avro Datafile。 这样,如果仅需要访问该行的少量数据,则需要将整个行读入存储器。 延迟序列化可以将问题减轻到一定程度,但是无法取消从磁盘读取整行数据的开销。 面向行的存储适用于需要同时处理整行数据的情况。
面向列:整个文件分为几列数据,每列数据存储在一起:Parquet,RCFile,ORCFile。 面向列的格式可以在读取数据时跳过不需要的列,适用于字段中只有一小部分行的情况。 但是这种读取和写入格式需要更多的存储空间,因为高速缓存行需要位于内存中(以获取多行中的一列)。 同时,它不适合流式传输,因为一旦写入失败,就无法恢复当前文件,并且在写入失败时,面向行的数据可以重新同步到最后一个同步点,因此Flume使用 面向行的存储格式。
大数据新人应该了解的Hadoop中的各种文件格式
大数据新人应该了解的Hadoop中的各种文件格式
> Picture 1.(Left Side )Show the Logical Table and Picture 2. ( Right Side) Row-Oriented Layout(Sequ
大数据新人应该了解的Hadoop中的各种文件格式
> Picture 3. Column-oriented Layout (RC File)
如果仍不清楚行和列的方向,请不用担心,您可以访问此链接,了解它们之间的区别。
以下是在Hadoop系统上广泛使用的一些相关文件格式:
序列文件
存储格式取决于是否压缩以及使用记录压缩还是块压缩而有所不同:
大数据新人应该了解的Hadoop中的各种文件格式
> The Internal structure of a sequence file with no compression and with record compression.
不压缩:根据记录长度,键长,值程度,键值和值值顺序存储。 范围是字节数。 使用指定的序列化执行序列化。
记录压缩:仅压缩值,并将压缩的编解码器存储在标头中。
块压缩:将多个记录压缩在一起,以利用记录之间的相似性并节省空间。 同步标记被添加在块之前和之后。 该属性的最小值为io.seqfile.compress.blocksizeset。
大数据新人应该了解的Hadoop中的各种文件格式
> The internal structure of a sequence file with block compression
地图文件
MapFile是SequenceFile的变体。 将索引添加到SequenceFile并对其进行排序后,它就是MapFile。 索引存储为单独的文件,通常每128条记录存储一个索引。 可以将索引加载到内存中以进行快速查找-存储按Key定义的顺序排列的数据的文件。 MapFile记录必须按顺序编写。 否则,将引发IOException。
MapFile的派生类型:
SetFile:一个特殊的MapFile,用于存储可写类型的键序列。 密钥是按顺序写入的。
ArrayFile:键是一个整数,表示数组中的位置,值是可写的。
BloomMapFile:使用动态Bloom过滤器针对MapFile get()方法进行了优化。 过滤器存储在内存中,并且仅当键值存在时,才会调用常规的get()方法来执行读取操作。
Hadoop系统下面列出的文件包括RCFile,ORCFile和Parquet。 Avro的面向列的版本是Trevni。

(编辑:新余站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读