我是MapReduce的新手 - Hadoop世界。在配置和文档中,他们指定映射器和化简器的数量。这实际上意味着什么?我的倍数是:
- 是否指定将要完成的级别数映射/减少。 即,如果否。 的化简器=2.那么reduce方法将被调用2次。是吗?
- 它是否指定了并行工作的映射器/化简器线程的数量,但每个线程只执行映射/减少一次。
哪一个是正确的?或者它意味着别的东西。我很困惑..请回答我
不,你完全错了。
- 指定映射任务的数量
- 只是给框架一个提示,输入格式决定了输入拆分的数量,一个拆分=一个映射任务。 reduce任务
- 的数量表示地图输出键被划分的任务数量,假设您有1000个不同的map输出键和5个reduce任务,那么每个reduce任务将获得大约200个键。对于每个键,都会调用reduce函数,因此在我的示例中,每个reduce任务大约需要200次。
- maptasks的数量,reduce任务并没有说明并行化。每个节点的并行线程数由任务跟踪器确定。因此,您应该指定映射的数量并减少任务跟踪器可用以并行运行的插槽。这是用
mapred.tasktracker.map|reduce.tasks.maximum
.请注意,化简器(在插槽中)将执行任务。因此,相应地配置减少槽的数量和减少任务的数量非常重要。如果您总共有 10 个减少槽,则至少还需要 10 个归约任务,否则某些槽将处于空闲状态。
由于您是 Map-Reduce 的新手,我坚信您需要阅读本文: http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en//archive/mapreduce-osdi04.pdf
一旦清楚地理解了范式,你们中的大多数人的疑虑就会被清除。这是一个完美的起点。