当我阅读Hadoop MapReduce教程at one point时,它提到了以下内容,



我们如何确定第一个输入文件将由一个映射器处理,而第二个输入文件将由另一个映射器处理?还是只是一个假设?

最佳答案

简短答案:
一个映射器不能处理多个文件。因此,对于两个文件,我们至少需要两个映射器。

更长(但仍简化了)答案:
一个映射器仅处理一个输入拆分。一个文件创建至少一个输入拆分。因此,两个文件至少创建了两个输入分割,因此由两个映射器处理。

例如,如果一个文件大于一个块的大小,则可以将其分区为更多的分割。块的默认大小(在当前版本中)为128MB(在先前版本中为64MB)。如果一个文件大于128MB,则它将产生多个输入拆分。因此,即使是同一文件,也可以由两个或多个映射器处理。这由InputFormat确定(也请阅读this post)。

Detailed answer

08-07 15:38