小文件产生主要有3种原因:
(1)当Reduce计算过程中会产生大量小文件;
(2)Tunnel数据采集过程中会生成小文件;
(3)Job执行过程中生成的各种临时文件、回收站保留的过期文件等。
MaxCompute什么情况下会产生小文件?如何解决小文件问题?https://help.aliyun.com/zh/maxcompute/faq-about-small-file-optimization-and-job-diagnostics?spm=a2c4g.11186623.0.i221#concept-2385675
产生场景:
MaxCompute使用盘古分布式文件系统是按块(Block)存放的,通常文件大小比块大小小的文件(默认块大小为64MB),被称为小文件。
以下场景会产生小文件:
Reduce计算过程会产生大量小文件。
Tunnel数据采集过程中会生成小文件。
Job执行过程中生成的各种临时文件、回收站保留的过期的文件等,主要分类有以下几种:
TABLE_BACKUP:回收站中超过保留天数的表。
FUXI_JOB_TMP:作业运行临时目录。
TMP_TABLE:作业运行中产生的临时表。
INSTANCE:作业运行时保留在META表中的日志。
LIFECYCLE:超过生命周期的数据表或分区。
INSTANCEPROFILE:作业提交及执行完成后的Profile信息。
VOLUME_TMP:没有META信息,但在盘古上有路径的数据。
TEMPRESOURCE:用户自定义函数使用的一次性临时资源文件。
FAILOVER:系统发生失效转移(Failover)时保留的临时文件。
可以通过如下命令查看表中的小文件数量。
desc extended + 表名
DataWorks小文件产生的原因主要有以下几种:
为了解决DataWorks小文件过多的问题,可以尝试以下几种方法:
在DataWorks中,小文件的产生可能有多种原因:
为了避免或减少小文件的产生,可以考虑优化数据处理流程、调整Hive操作方式、合理配置Reduce计算等。同时,定期清理不再需要的小文件和临时文件也是一个好的实践。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。