hive 单个 orcfile'stripe 可以拆分成更小的尺寸吗?

问题描述

例如,一个orcfile的block和stripesize是一样的,都是256M,但是split size是100M。 orcfile是怎么拆分的?

解决方法

ORC 在条带级别拆分,在您的情况下为 256M,不可能进行更小的拆分。

条带大小可在 TBLPROPERTIES("orc.stripe.size"="268435456") 中配置,分割大小可在这些设置中配置(例如 Tez):

set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat;
set tez.grouping.max-size=104857600; 
set tez.grouping.min-size=32000; --smaller files will be possibly be combined

在这种情况下,如果有较小的条带,每个映射器将收到整个条带 (256M) 或更少,条带将不会被拆分为较小的块。