前言
HDFS小文件过多会对Hadoop扩展性以及稳定性造成影响,NameNode需维护大量元数据信息导致占用过多的存储空间。大量的小文件也会导致很差的查询分析性能,因为执行查询时需要进行频繁的文件打开/读取/关闭,造成查询性能的损耗。
一、小文件治理的背景
1.1 小文件产生原因
- 日常任务及动态分区插入数据会产生大量的小文件,从而导致map数量剧增;
- reduce数量越多,小文件也越多(reduce个数和输出文件是对应的)
- 数据源本身就包含大量的小文件,例如api,kafka消息管道等。
- 实时数据落hive也会产生大量小文件。