通过Hive小文件归并(CombineHiveInputFormat)减少80%的Map使命数 ...

打印 上一主题 下一主题

主题 1659|帖子 1659|积分 4979

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、Hive小文件归并(CombineHiveInputFormat)减少Map使命数

核心题目:小文件过多导致Map使命激增(每个文件至少一个Map),浪费资源且增加NameNode压力
优化策略:


  • 输入归并(Map前归并)

    • 参数配置: SQL
      set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat; -- 启用归并输入 set mapred.max.split.size=256000000; -- 单个Map处理的最大数据量(默认256MB) set mapred.min.split.size.per.node=100000000; -- 单个节点最小归并阈值
      通过将多个小文件归并为逻辑块,减少Map数目(例如将100个1MB文件归并为2个Map使命) 
       

  • 输出归并(使命竣事后归并)

    • 参数配置: SQL
      set hive.merge.mapfiles=true; -- 归并Map输出 set hive.merge.mapredfiles=true; -- 归并Reduce输出 set hive.merge.size.per.task=256000000; -- 目标文件巨细 set hive.merge.smallfiles.avgsize=16000000; -- 触发归并的阈值
    • 归并机制
      使命竣事后自动启动Map-only作业,将碎片文件归并至目标巨细,避免后续使命处理小文件 
       

效果验证


  • 案例:某集群通过归并参数优化,Map使命数从1000+降至200,减少80%资源斲丧 
  • 注意事项:归并操作可能增加作业耗时,发起仅在终极结果表启用 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用多少眼泪才能让你相信

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表