hdfs小文件是啥意思

所谓小文件,即存储在hdfs上的数据文件明显小于hdfs文件块大小的(默认是64MB)。小文件过多,占用大量内存。

小文件的产生:主要由Hive启动的mr任务生成。

在hdfs中,每次读写文件都需要先从namenode获取表结构(元数据),然后再与datanode建立连接。而访问大量的小文件会经常需要大量的定位寻址操作,不断地在datanode间跳跃去检索小文件。访问小文件的过程严重影响性能。

在计算层面,小文件越多,意味着mapreduce执行任 务时需要创建的map也会越来越多,这样,任务的启动与释放将耗费大量的时间。同时,每一个map都会开启一 个 jvm虚拟机用于执行任务,带来的调度以及计算成本也会更高。

针对这种情况,增加一个spark任务定时调度执行,用于合并小文件,减轻了namenode对服务器造成的内存压力。

--合并小文件功能

启动较多的map或reduce能够提高并发度,加快任务运行速度;但同时在hdfs上生成的文件数目也会越来越多,会给namenode造成内存上压力,进而影响hdfs读写效率。所以对于集群的小文件(主要由Hive启动的MR生成),小文件合并功能能够使本轮map输出及整个任务输出的文件完成合并,保证下轮MapReduce任务map处理数据量均衡

--在某零售行业项目,发现有一个对增量hive表查询的任务速度执行越来越慢,测试发现,上千万数据统计耗时需要几分钟,排查发现由于定时从多个数据源增量同步数据到hive表,导致hive表中小文件准积越来越多,sq1执行时长耗时越来越长。

 

--要么从源头处理

--要么从中间环节处理

--要么从结果集处理

posted @   -空降兵-  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示