mapreduce wordcount示例提供了两个mappers v2.5.1

06odsfpq  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(248)

当我阅读hadoop mapreduce教程时,它曾经提到:,
对于给定的示例输入,第一个贴图将发出:<hello,1><world,1><bye,1><world,1>
第二个Map发出:<hello,1><hadoop,1><goodye,1><hadoop,1>
如何确保第一个输入文件将由一个Map器处理,第二个Map器将由另一个Map器处理?还是仅仅是一种假设?

afdcj2ne

afdcj2ne1#

简短回答:
一个Map器不能处理多个文件。所以,对于两个文件,我们至少需要两个Map器。
较长(但仍然简化)的答案:
一个Map器只处理一个输入分割。一个文件至少创建一个输入拆分。因此,两个文件,创建至少两个输入拆分,因此由两个Map器处理。
例如,如果一个文件的大小大于一个块的大小,则可以将它划分为多个分区。块的默认大小是(在当前版本中)128mb(在以前的版本中是64mb)。如果文件大于128mb,则会产生多个输入拆分。因此,即使是同一个文件也可以由两个或多个Map器处理。这是由inputformat决定的(请阅读本文)。
详细答案

相关问题