【问题标题】:Input/Output flow in map reduce chainingmap reduce链接中的输入/输出流
【发布时间】:2013-08-20 23:17:24
【问题描述】:

我需要关于 map reduce 链接的帮助。我有一个这样的 map reduce 链

ma​​p->reduce->map

我希望在最后一个映射器中使用 reducer 的输出

例如,在我的减速器中,我得到了员工的最高工资,这个值应该在下一个映射器中使用,并找到具有该最大工资值的记录。所以显然我的最后一个映射器应该得到输出减速器和文件的内容?有可能吗?我该如何解决这个问题?有更好的解决方案吗?

【问题讨论】:

    标签: hadoop mapreduce reduce mapper


    【解决方案1】:

    我不确定我是否理解问题,但我会尽力提供帮助。
    您已将一些包含员工工资的输入(我们称之为 input1)减少为输出(我们称之为 output1),如下所示:
    Key: someEmployee Value: max salary
    现在您想要另一个映射器来映射来自 input1 和 output1 的数据?
    如果是这样,那么您的选择就很少了,您可以根据自己的需要选择一个。

    • 操纵第一个减速器输出。以
      Key: someEmployee Value: max_salary@@salary_1,salary_2,salary_3...salary_n 格式创建 output1
      然后创建新作业,并将新的映射器输入设置为输出1。

    • 尝试阅读 this issue 解释如何将多个输入输入到一个映射器中

    【讨论】:

    • 对不起,我是 hadoop 的新手,所以苦苦挣扎。我会在我的减速器中找到最高薪水,这个最高薪水,文件的内容应该是下一个映射器的输入,所以我将找到最高薪水的记录。
    • 所以第一个解决方案应该正是您所需要的。只需创建另一个 mapreduce 作业,并输入您在第一步生成的输出文件作为输入。
    • 我的回答对您有帮助吗?你还需要什么别的吗?如果没有,请标记为答案。
    • 如何将 output1 设置为新的映射器,因为映射器输入将像这样设置 FileInputFormat.setInputPaths(jobConf, new Path("hdfs://localhost:9000/employee_da
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 2012-02-20
    • 1970-01-01
    • 2010-12-07
    相关资源
    最近更新 更多