Java 映射器和还原器的数量。这意味着什么?

Java 映射器和还原器的数量。这意味着什么?,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,我是MapReduce-hadoop世界的新手。在配置和文档中,他们指定了映射器和还原器的数量。这实际上意味着什么?我的想法是: 是否指定将进行的级别映射/减少的数量。即,如果reducer的数量=2,则reduce方法将被调用2次。是吗 它指定了并行工作的映射器/减速器线程的数量,但每个线程只映射/减速一次 哪一个是正确的?或者它意味着别的什么我很困惑。。请回答我不,你完全错了 指定maptasks的数量只会给框架一个提示,输入格式决定输入拆分的数量,一个拆分=一个MapTask reduce

我是MapReduce-hadoop世界的新手。在配置和文档中,他们指定了映射器和还原器的数量。这实际上意味着什么?我的想法是:

  • 是否指定将进行的级别映射/减少的数量。即,如果reducer的数量=2,则reduce方法将被调用2次。是吗
  • 它指定了并行工作的映射器/减速器线程的数量,但每个线程只映射/减速一次

  • 哪一个是正确的?或者它意味着别的什么我很困惑。。请回答我不,你完全错了

  • 指定maptasks的数量只会给框架一个提示,输入格式决定输入拆分的数量,一个拆分=一个MapTask
  • reduce tasks的数量表示地图输出键划分的任务数,假设您有1000个不同的地图输出键和5个reduce tasks,则每个reduce任务将获得大约200个键。对于每个键,都会调用reduce函数,因此在我的示例中,每个reduce任务大约调用200次
  • maptasks、reduce tasks的数量并不能说明并行化。每个节点的并行线程数由tasktracker确定。因此,您应该指定映射的数量,并减少tasktracker并行运行时可用的插槽数。这是通过
    mapred.tasktracker.map | reduce.tasks.maximum
    配置的。请注意,(插槽中的)减速器将执行一项任务。因此,配置reduce插槽的数量以及相应的reduce任务的数量非常重要。如果您总共有10个reduce插槽,那么您还需要至少10个reduce任务,否则一些插槽将处于空闲状态

  • 不,你完全错了

  • 指定maptasks的数量只会给框架一个提示,输入格式决定输入拆分的数量,一个拆分=一个MapTask
  • reduce tasks的数量表示地图输出键划分的任务数,假设您有1000个不同的地图输出键和5个reduce tasks,则每个reduce任务将获得大约200个键。对于每个键,都会调用reduce函数,因此在我的示例中,每个reduce任务大约调用200次
  • maptasks、reduce tasks的数量并不能说明并行化。每个节点的并行线程数由tasktracker确定。因此,您应该指定映射的数量,并减少tasktracker并行运行时可用的插槽数。这是通过
    mapred.tasktracker.map | reduce.tasks.maximum
    配置的。请注意,(插槽中的)减速器将执行一项任务。因此,配置reduce插槽的数量以及相应的reduce任务的数量非常重要。如果您总共有10个reduce插槽,那么您还需要至少10个reduce任务,否则一些插槽将处于空闲状态

  • 由于您是Map Reduce的新手,我坚信您需要仔细阅读本文:


    你们中的大多数人一旦清楚地理解了范例,疑虑就会消除。这是一个完美的起点。

    由于您是Map Reduce的新手,我坚信您需要仔细阅读这篇文章:


    你们中的大多数人一旦清楚地理解了范例,疑虑就会消除。这是一个完美的起点。

    哦。那么你能给我它的配置吗?你可以看看这里:注意,你必须注意你的hadoop版本,不是所有的参数都在每个版本中!哦那么你能给我它的配置吗?你可以看看这里:注意,你必须注意你的hadoop版本,不是所有的参数都在每个版本中!