我使用一个配置单元外部表将数据转储为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
设置每个reducer的字节数限制并添加distributed by(这将触发reducer步骤(,使用一些均匀分布的列或列列表:
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