摘自Hive的文档:
如果表或分区包含许多小的RCFiles或ORC文件,然后上述命令会将它们合并为更大的文件。的情况下RCFile合并发生在块级别,而对于ORC文件,合并发生在条带级别,从而避免了解压缩和解码数据。
我的问题是:块和条纹之间有什么区别?
HDFS块是最低级别,ORC条带是较高级别,这些级别是完全独立的,ORC中的条带并不关心较低的存储层。
HDFS块:
ORC条纹:
上层存储。 Stripe对块一无所知。
ORC可在条带级别拆分。 HDFS对ORC结构以及如何对其进行拆分以进行处理一无所知。 HDFS将文件拆分为多个块以优化存储。单个容器中至少可以处理一条条纹。您可以配置条带大小以适合块大小。
一些有用的链接。请阅读以获得更好的理解: