可以配置mapreduce程序,使得只执行reducer而不执行mapper [即使程序中定义了map函数]。这可以通过改变工作配置来实现。
我想在mapreduce中实现增量计算(输入仅作为附加文件)。例如
对于wordcount,
如果wordcount已经在文件上执行,之后会有更多数据附加到输入文件中。
如果再次对更新的输入文件执行wordcount,我只想对新数据执行wordcount,并将旧结果与此结合起来。 对于这种输出组合,我想单独执行reducer 。
答案 0 :(得分:1)
不,这是不可能的。 Hadoop要求您执行map
,而reduce
是可选的。
如果你想分组,你可以尝试使用Apache Tez
并配置一个与你想要的相同的DAG(可能仍然是hacky,因为你需要使用内部数据格式)。
答案 1 :(得分:0)
是的你可以!,将此代码用作mapper(python_version)
import sys
for i in sys.stdin:
print i
这将成功,因为mapper必须是一个。所以只需用虚拟映射器打印输入内容
我猜这有帮助!