Hadoop将变量传递给映射器和还原器



我是Hadoop的完整初学者。我已经构建了字数,而且我很确定我了解基础知识,但是将其扩展到实际问题时遇到了麻烦。我的(修改)代码如下:

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

我想使用hadoop分发。我可以写一个映射器和一个还原器,但是我不知道如何将集合传递给映射器,并将渲染器传递给还原器(或者如果这是处理此问题的惯用方法)。我也觉得我需要写自己的写作来处理映射器和还原器之间的对(i,j),但我不知道这样做的最佳方法。任何帮助将不胜感激。

您正在做的事情本质上是set的笛卡尔产品。您可能需要实现自定义输入格式。

这是通用笛卡尔产品工作的一个示例:https://github.com/adamjshook/mapreducepatterns/blob/master/master/mrdp/main/src/main/java/java/java/mrdp/ch5/cartesianproduct.java

您可以看到上面在第67-77行的输入路径上完成的逻辑:https://github.com/adamjshook/mapreducepatterns/blob/master/master/mrdp/src/src/main/main/main/java/java/mrdp/ch55/cartesianproduct.java#l67-l77

最新更新