映射器和减速器的数量。这是什么意思?

时间:2013-10-30 09:29:13

标签: java hadoop mapreduce

我是MapReduce的新手 - hadoop世界。在配置和文档中,他们指定映射器和缩减器的数量。它实际上意味着什么?我的小天才是:

  1. 是否指定将完成映射/缩减的级别数。即,如果减速器的数量= 2.那么减少方法将被调用2次。是吗?
  2. 是否指定了并行工作的mapper / reducer线程数,但每个线程只执行map / reduce一次。
  3. 哪一个是正确的?或者它意味着别的什么。我很困惑..请回答我

2 个答案:

答案 0 :(得分:3)

不,你完全错了。

  1. 指定maptasks的数量仅提示框架,输入格式确定输入拆分的数量,一个拆分=一个地图任务
  2. reduce任务的数量表示地图输出键被分割的任务数,比如你有1000个不同的地图输出键和5个reduce任务,那么每个reduce任务将获得大约200个键。对于每个键,调用reduce函数,因此约。在我的例子中,每次减少任务200次。
  3. maptasks的数量,减少任务并没有说明并行化。每个节点的并行线程数由tasktracker确定。因此,您应指定可以并行运行的任务跟踪器的映射和减少插槽的数量。这是使用mapred.tasktracker.map|reduce.tasks.maximum配置的。请注意,reducer(在插槽中)将执行任务。因此,重要的是配置减少时隙的数量和减少任务的数量。如果您总共有10个减少插槽,那么您还需要至少10个减少任务,或者某些插槽将处于空闲状态。

答案 1 :(得分:1)

由于您不熟悉Map-Reduce,我坚信您需要阅读本文:http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en//archive/mapreduce-osdi04.pdf

一旦明确了解范式,你们中的大多数人都会被清除。它是一个完美的起点。