使用Java类作为Mapper和Python脚本作为Reducer

时间:2012-02-11 15:32:41

标签: hadoop mapreduce hadoop-streaming

我正在尝试使用流媒体运行hadoop。我有两个文件。一个是mapper的java文件,另一个是reducer的python脚本。

MerkleMapper.java

Class MerkleMapper extends MapREduceBase并定义map()函数。对于输入拆分的每条记录,它会读取传入的key(byte_offset)value(line)对,并输出该行的byte_offset和哈希值。

Reducer是一个python脚本,它结合了所有哈希并产生一个顶级哈希。

是否可以将两者结合起来(java和python)。如何使用Streaming将我的java文件指定为mapper。

1 个答案:

答案 0 :(得分:0)

您可以将其拆分为2个职位。

第一个作业只有一个映射器(你的Java映射器),你获取它的输出并将其传递给python流作业,其中你的Mapper是身份映射器,你的reducer是python Reducer。目前,您无法将我所知道的流媒体和java结合起来。