映射器可以写入多个文件

时间:2013-10-27 19:04:31

标签: java hadoop mapreduce

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

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

我的问题是:

  1. 如何为每个映射器中的每个文件分别保存数据跟踪和保存地点和名称列表。如何减少识别这些文件,并为每个文件提供合并的地点列表和另一个名称。
  2. Say 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中实现这一目标的方法。

1 个答案:

答案 0 :(得分:0)

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