mapreduce--如何设置reducer的个数

13 篇文章 0 订阅
9 篇文章 0 订阅

1,在缺省情况下,一个mapreduce的job只有一个reducer;在大型集群中,需要使用许多reducer,中间数据都会放到一个reducer中处理,如果reducer数量不够,会成为计算瓶颈。

2,reducer的最优个数与集群中可用的reducer的任务槽数相关,一般设置比总槽数稍微少一些的reducer数量;hadoop文档中推荐了两个公式:

0.95*NUMBER_OF_NODES*mapred.tasktracker.reduce.tasks.maximum

1.75*NUMBER_OF_NODES*mapred.tasktracker.reduce.tasks.maximum

备注:NUMBER_OF_NODES是集群中的计算节点个数;

mapred.tasktracker.reduce.tasks.maximum:每个节点所分配的reducer任务槽的个数;

3,在代码中通过:JobConf.setNumReduceTasks(Int numOfReduceTasks)方法设置reducer的个数;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值