java - 映射器可以写入多个文件吗

标签 java hadoop mapreduce

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

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

我的问题是:

  • 如何维护数据跟踪并从每个映射器分别保存每个文件的位置和名称列表。reduce如何识别这些文件并提出合并的位置列表和每个文件的另一个名称。

  • 说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中有什么方法可以帮助我做到这一点。

    最佳答案

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

    关于java - 映射器可以写入多个文件吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19622170/

    相关文章:

    hadoop - Map Reduce 已完成但 pig 作业失败

    hadoop - 如何自定义作业名称?

    hadoop - 为什么MapReduce在映射步骤中麻烦将每个值映射到1?

    java - 如何在不克隆本地存储库的情况下获取提交列表

    java - 我收到“com.ibm.db2.jcc.am.SqlIntegrityConstraintViolationException : DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505

    java - 使用 Hadoop-2.2.0 启动 hbase 时出错

    hadoop - Spark 无法检索特定列中的所有 Hbase 数据

    hadoop - mapreduce 作业停留在 0

    java - 如何在Java中将 float 组转换为 double 组?

    java - com.fasterxml.jackson.databind.exc.MismatchedInputException : Cannot construct instance of `java.util.LinkedHashMap`