2023年11月26日发(作者:)

Hive⼩⽂件问题

最近发现离线任务对⼀个增量Hive表查询越来越慢,推测是由⼩⽂件产⽣的

取HDFS查看确实存在480个⼩⽂件

于是合并⼩⽂件

4.分桶表

5.可以修改的表,此种表有⼀个快照,随时间增加数据越来越⼤

⼩⽂件危害

1.给NameNode内存中fsImage合并造成压⼒

2.未开启⼩⽂件合并,每个⽂件⼀个MapTask,集群资源浪费

如果原表有⼤量⼩⽂件,在导⼊⽬标表的时候也会产⽣⼤量⼩⽂件。如果有分区如dt、hour,可以使⽤ distribute by dt,hour,

保证每⼩时数据在⼀个reduce⾥⾯

4.定期合并数据

类似于增量导⼊数据,会存在⼩⽂件,需要进⾏⼀天或者⼀周的定时⽂件合并