配置MapReduce程序只在现有程序中运行reducer

时间:2014-09-20 05:03:01

标签: hadoop mapreduce configure reduce

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

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

对于wordcount,

如果wordcount已经在文件上执行,之后会有更多数据附加到输入文件中。

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

import sys for i in sys.stdin: print i

这将成功,因为mapper必须是一个。所以只需用虚拟映射器打印输入内容

我猜这有帮助!