0

我是 Hadoop 和 Map reduce 的新手,我使用的是旧版本的 hadoop 0.19。我有一个程序可以读取文件/excel,并将列内容作为地点、位置、名称等列表提供给我。

假设我有映射器将我的输入文件分成两部分。这些映射器中的每一个都会给我一个上述实体的列表。

我的问题是:

  1. 我如何维护数据跟踪并为每个映射器的每个文件分别保存地点和名称列表。reducer 如何识别这些文件并为每个文件提供地点的综合列表和另一个名称。

说 Doc-1:

list of places from mapper1---NY,1 US,2
list of names from mapper1---James 3 ,Ron 8
list of places from mapper-2 --NY 6 UK 5
list of names from mapper 2--Kate 9

像这样的东西。

如何将每个映射器的输出以及每种类型的实体的输出保存为名称或位置。

reducer 如何仅识别和减少名称并得出最终列表或仅位置并得出与该文件有关的最终列表。

请帮我解决这个问题,并让我知道任何可以帮助我在 Java 中做到这一点的方法。

4

1 回答 1

0

如果这是仅 Map 的作业,则输出文件的数量将与 Mappers 的数量相同。如果这是 MapReduce 作业,您可以指定 Reducer 的数量。提供一个 Partitioner,将数据从特定的 Mapper 发送到特定的 Reducer。如果您不确定 Mapper 的数量,请使 Reducer 的数量略高于总数,并且仅使用 Partitioner 中的前 n 个 Reducer。

于 2013-10-28T09:30:39.987 回答