废话不多说,上结果请看:
文章插图
文章插图
结果分析:这下好了,全是大文件,44大文件,每个大文件都是辣么大,最小的都是48Mb 。为啥加了split参数以后就生效了呢 。前面单独合并小文件参数没啥效果呢?网上随便搜一下,都是这种配置这种参数的?
-- 设置小文件合并set hive.merge.mapfiles=true;set hive.merge.mapredfiles=true;set hive.merge.size.per.task = 256000000 ;set hive.merge.smallfiles.avgsize= 256000000 ;
4.答案揭晓因为设置上面四个参数,看上去规定了map结束,MR结束合并文件,如果文件平均小于smallfiles.avgsize启动一个新的MRj进行文件的二次合并 。如果启动mr合并文件,没有问题 。但是忽略了一个问题,你重新启动一个mr合并文件,这个mr是不是需要进行文件split,你这个参数搞小了,那就会产生很多task,很多map,比如很多小文件就是一个map,最终还是产生很多小文件(因为合并小文件的mr只有map) 。所以必须要配合split参数才有用 。具体split参数使用,参考我其他博客 。本文转载自微信公众号「涤生大数据
推荐阅读
- MySQL函数索引及优化
- 小买卖补单平台 “大生意合伙做,小买卖自己干”为什么绝大多数人理解不了?
- ERP软件系统二次开发的注意事项 软件二次开发
- 高叶|陈乔恩和老公在马来西亚看舞狮,被工作人员认出,挨个合影有亲和力
- 如何培训销售人员? 销售人员培训方案
- 软件开发企业的税收筹划方案 税务规划方案
- 退休人员的工龄满30年,不幸离世后,领取的丧葬费和抚恤金更多?
- 为什么 JavaScript 在国外逐渐用于前端+后端开发,而国内还是只用它做前端?
- 分享9个前端开发人员必备的查询手册工具网站
- 杨紫琼|杨紫琼“美国退休人员协会电影奖”再封影后