【问题标题】:Number of mappers and reducers. What it means?映射器和减速器的数量。这是什么意思?
【发布时间】:2013-11-09 19:11:49
【问题描述】:

我是 MapReduce-hadoop 世界的新手。在配置和文档中,他们指定了映射器和缩减器的数量。这实际上是什么意思?我的疑问是:

  1. 它是否指定了将进行映射/减少的级别数。即,如果reducer 的编号=2。那么reduce 方法将被调用2 次。是吗?
  2. 是否指定了并行工作的映射器/归约器线程数,但每个线程只执行一次映射/归约。

哪一个是正确的?或者它意味着别的东西。我很困惑..请回答我

【问题讨论】:

    标签: java hadoop mapreduce


    【解决方案1】:

    由于您是 Map-Reduce 的新手,我坚信您需要阅读这篇论文:http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en//archive/mapreduce-osdi04.pdf

    一旦范式被清楚地理解,你们中的大多数疑问都会被清除。这是一个完美的起点。

    【讨论】:

      【解决方案2】:

      不,你完全错了。

      1. 指定maptasks的数量只是给框架一个提示,输入格式决定了输入split的数量,一个split =一个map task
      2. reduce 任务的数量表示 map 输出键被划分为多少个任务,假设您有 1000 个不同的 map 输出键和 5 个 reduce 任务,那么每个 reduce 任务将获得大约 200 个键。对于每个键调用reduce函数,所以大约。在我的示例中,每个 reduce 任务 200 次。
      3. maptasks、reduce 任务的数量并没有说明并行化。每个节点的并行线程数由 tasktracker 确定。因此,您应该指定可用于并行运行的 tasktracker 的 ma​​p 和 reduce 槽数。这是用mapred.tasktracker.map|reduce.tasks.maximum 配置的。请注意,reducer(在插槽中)将执行任务。所以相应地配置reduce slot的数量和reduce任务的数量是很重要的。如果您总共有 10 个 reduce 插槽,您还需要至少 10 个 reduce 任务,否则一些插槽将处于空闲状态。

      【讨论】:

      • 哦。那你能给我它的配置吗
      • 你可以看看这里:hadoop.apache.org/docs/r0.18.3/… 注意你必须注意你的hadoop版本,不是每个版本都有所有参数!
      猜你喜欢
      • 1970-01-01
      • 2019-01-02
      • 2010-10-23
      • 2013-10-23
      • 2014-09-20
      • 1970-01-01
      • 2018-06-29
      • 1970-01-01
      • 2020-04-17
      相关资源
      最近更新 更多