配置单元插入覆盖目录将记录拆分为相等的文件大小

vyu0f0g1  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(263)

我使用一个配置单元外部表将数据转储为json。我的垃圾文件看起来不错。但是,在我转储之后,hive编写的文件大小不一,从400mb到7gb不等。我想有一个固定的最大大小(如1gb)的文件。但我不能这么做。请帮帮我!我的问题:

INSERT OVERWRITE DIRECTORY '/myhdfs/location' 
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.DelimitedJSONSerDe' 
    select * from MY_EXTERNAL_TABLE;

配置单元版本: Hive 1.1.0-cdh5.14.2 hadoop版本: Hadoop 2.6.0-cdh5.14.2

enyaitl3

enyaitl31#

设置每个缩减器的字节数限制并添加分发方式(这将触发缩减器步骤),使用一些均匀分布的列或列列表:

set hive.exec.reducers.bytes.per.reducer=1000000000; 

INSERT OVERWRITE DIRECTORY '/myhdfs/location' 
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.DelimitedJSONSerDe' 
    select * from MY_EXTERNAL_TABLE distribute by <column or col list here>;

同时检查以下答案:https://stackoverflow.com/a/55375261/2700344

相关问题