块和条带之间有什么区别?

问题描述 投票:0回答:1

摘自Hive的文档:

如果表或分区包含许多小的RCFiles或ORC文件,然后上述命令会将它们合并为更大的文件。的情况下RCFile合并发生在块级别,而对于ORC文件,合并发生在条带级别,从而避免了解压缩和解码数据。

我的问题是:块和条纹之间有什么区别?

hadoop hive filesystems orc
1个回答
0
投票

HDFS块是最低级别,ORC条带是较高级别,这些级别是完全独立的,ORC中的条带并不关心较低的存储层。

HDFS块:

  • HDFS块是最低级别,与文件格式无关。 HDFS将文件分成块以优化存储。
  • 一个条带可以存储在多个块中,一个块可以包含多个条带或部分条带。 HDFS将分割文件,而不考虑条带格式或文件格式。
  • HDFS存储每个文件块的元数据,对于较高的ORC读取器级别而言,读写文件是透明的,HDFS将处理所有块。

ORC条纹:

  • 上层存储。 Stripe对块一无所知。

  • ORC可在条带级别拆分。 HDFS对ORC结构以及如何对其进行拆分以进行处理一无所知。 HDFS将文件拆分为多个块以优化存储。单个容器中至少可以处理一条条纹。您可以配置条带大小以适合块大小。

一些有用的链接。请阅读以获得更好的理解:

HDFS blocks

HDFS block vs Stripe

ORC optimizing

Big ORC stripes and block padding in S3-非常有用的博客

© www.soinside.com 2019 - 2024. All rights reserved.