- 9
- 0
- 约3.7千字
- 约 3页
- 2017-09-16 发布于浙江
- 举报
mmaapprreedduuccee中中rreedduucceerrss个个数数设设置置
分类: hadoop 2013-12-11 11:00 182人阅读 评 (2) 收藏 举报
mapreduce
MapReduce框架将文件分为多个splits,并为每个splits创建一个Mapper,所以Mappers的个数直接由
splits的数 目决定。而Reducers的数 目可以通过job.setNumReduceTasks()函数设置,默认情况只有一个Reducer。
在真正的集群环境下,如果默认,那么所有的中间数据会发送给唯一的Reducer,导致任务变得非常缓慢。究竟设多
少个Reducers合适呢?为了解决这个问题,首先来了解一下slots的概念。
slots有点类似一个资源池,每个任务 (map和reduce)执行时都必须获得一个slot才能继续,否则只
能等待。当一个任务完成后,该任务就归还slot,这个过程有点类似释放资源到资源池中。显然,每一个获得资源
的任务都可以立即执行,无需等待。另一方面,mapreduce的任务由tasktracker节点负责执行的,所以slots可进一
步理解为tasktrackers能够并发执行多个任务。slots分为mapper slots和reducer slots
原创力文档

文档评论(0)