将mapreduce程序配置为只在现有程序中运行reducer

camsedfj  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(343)

mapreduce程序是否可以配置为只执行reducer而不执行mapper[即使程序中定义了map函数]。仅通过更改作业配置就可以实现这一点。
我想在mapreduce中实现增量计算(输入为仅附加文件)。例如
对于wordcount,
如果wordcount已经在一个文件上执行,那么在这个文件之后会有更多的数据附加到输入文件中。
如果对更新的输入文件再次执行wordcount,我只想对新数据执行wordcount,并将旧结果与此合并。对于这种输出组合,我想单独执行reducer。

8aqjt8rx

8aqjt8rx1#

不,这是不可能的。hadoop要求您 map ,而 reduce 是可选的。
如果你想做一个小组,你可以尝试使用 Apache Tez 并配置一个与您想要归档的内容相同的dag(可能仍然有问题,因为您需要使用内部数据格式)。

ccgok5k5

ccgok5k52#

是的,你可以!,将此代码用作Map器(python\u版本) import sys for i in sys.stdin: print i 这样就可以了,因为Map器是必须的。所以只要用虚拟Map器打印输入的内容就行了
我想这有帮助!

相关问题