温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

hive小文件如何合并

发布时间:2021-12-09 09:35:37 来源:亿速云 阅读:285 作者:小新 栏目:云计算

这篇文章主要介绍 hive小文件如何合并,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

起因:

最近仓库里面新建了一张分区表,数据量大约是12亿行,分区比较多,从2008年7月开始 一天一个分区。

配置了一个任务

对这个表进行group by 的时候 发现启动了2800多个maps .

执行的时间也高大10分钟。

然后我在hdfs文件里面看到 这个表的每个分区里面都有20多个小文件,每个文件都不大 300KB--1MB

之前的hive的参数:
hive.merge.mapfiles=true
hive.merge.mapredfiles=false
hive.merge.rcfile.block.level=true
hive.merge.size.per.task=256000000
hive.merge.smallfiles.avgsize=16000000

hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat

mapred.max.split.size=256000000
mapred.min.split.size=1
mapred.min.split.size.per.node=1
mapred.min.split.size.per.rack=1

hive.merge.mapredfiles 这个指的是 在Map-Reduce的任务结束时合并小文件

解决办法:

1.修改参数hive.merge.mapredfiles=true

2.通过map_reduece的办法生成一张新的表 此时生成的文件变成了每个分区一个文件

再次执行group by 发现效率得到了大大的提升。

以上是“ hive小文件如何合并”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI