【问题标题】:Configure MapReduce program to run only reducer in existing program将 MapReduce 程序配置为仅在现有程序中运行 reducer
【发布时间】:2014-09-20 05:03:00
【问题描述】:

可以配置一个mapreduce程序,使得只执行reducer而不执行mapper[即使程序中定义了一个map函数]。这可以通过更改作业配置来实现吗?

我想在 mapreduce 中实现增量计算(输入作为仅附加文件)。例如

对于字数,

如果已对文件执行 wordcount,则在输入文件中追加一些数据。

如果在更新的输入文件上再次执行 wordcount,我想只对新数据执行 wordcount 并将旧结果与此结合。 对于这种输出组合,我想单独执行 reducer

【问题讨论】:

  • 这完全取决于你在做什么:你是加入数据还是要减少已经排序的数据?
  • 我已经更新了关于我想要实现什么的问题。

标签: hadoop mapreduce configure reduce


【解决方案1】:

不,这是不可能的。 Hadoop 要求您执行 map,而 reduce 是可选的。

如果您想进行分组,您可以尝试使用Apache Tez 并配置一个与您要归档的内容相同的 DAG(可能仍然是 hacky,因为您需要使用内部数据格式)。

【讨论】:

    【解决方案2】:

    是的,你可以!,将此代码用作映射器(python_version)

    import sys for i in sys.stdin: print i

    这可以解决问题,因为映射器是必须的。所以只需使用虚拟映射器打印输入的内容

    我想这有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多