请选择 进入手机版 | 继续访问电脑版

hive 的map, reduce数量调试

[复制链接]
茂忠想你 发表于 2020-12-31 20:24:24 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
场景: 执行hive sql,占用的内存资源特别多, 如何去淘汰占用的内存 cpu资源.
执行的sql只是做了一下group by使用。
 
步骤1: 
淘汰map数量,合并小文件
  1. set mapreduce.input.fileinputformat.split.maxsize=1500000000set mapreduce.input.fileinputformat.split.minsize=800000000set mapreduce.input.fileinputformat.split.minsize.per.node=800000000set mapreduce.input.fileinputformat.split.minsize.per.rack=800000000set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat      #执行 Map 前举行小文件合并
复制代码
步骤2: 
淘汰reduce数量
hive.exec.reducers.bytes.per.reducer    默认是1G,输入文件如果是10G,那么就会起10个reducer  
hive.exec.reducers.max(每个sql任务最大的reduce数,默认为999)
mapred.reduce.tasks     设置固定的reduce数量    
 
步骤3: 
hive.groupby.skewindata:
    group by使用是否允许数据倾斜,
    默认是false,
    当设置为true时,执行操持会生成两个map/reduce作业,第一个MR中会将map的效果随机分布到reduce中,到达负载均衡的目的来解决数据倾斜
 
效果:
从 原来的32个containers  32个cpu  32G内存
变成了现在6个containers  6个CPU   6G内存


来源:https://blog.csdn.net/u012447842/article/details/111991486
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

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

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )