Hadoop将变量传递给mapper和reducer

时间:2014-01-31 05:39:12

标签: java hadoop

我是Hadoop的初学者。我已经构建了Word Count,我相当确定我理解基础知识,但是我无法将其扩展到实际问题。我的(修改过的)代码如下:

for (Item i : set) {
    for (Item j : set) {
        Score s = score(i, j);
        renderer.render(s);
    }
}

我想使用Hadoop来分发它。我可以写一个Mapper和一个Reducer,但我不知道如何将这个集合传递给Mapper和渲染器到Reducer(或者如果这甚至是用来处理它的惯用方法)。我也觉得我需要编写自己的Writable来处理在Mapper和Reducer之间传递对(i,j),但我不知道最好的方法。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

你所做的事实上是set与自己的笛卡尔积。 您可能需要实现自定义输入格式。

以下是通用笛卡尔产品作业的示例:https://github.com/adamjshook/mapreducepatterns/blob/master/MRDP/src/main/java/mrdp/ch5/CartesianProduct.java

您可以在第67-77行看到与输入路径相同的逻辑:https://github.com/adamjshook/mapreducepatterns/blob/master/MRDP/src/main/java/mrdp/ch5/CartesianProduct.java#L67-L77