多输出路径(爪哇 - Hadoop的 - 的MapReduce)(Multiple output

2019-08-21 02:15发布

我做了两个MapReduce工作,我想第二个作业才能够到我的结果写入到两个不同的文件,在两个不同的目录中。 我想在某种意义上类似于FileInputFormat.addInputPath东西(..,多输入路径),但输出。

我完全新的MapReduce的,和我有特异性写我的代码的Hadoop 0.21.0我用context.write(..)我减少一步,但我不明白如何控制多个输出路径.. 。

谢谢你的时间 !

从我的第一份工作我reduceCode,展现你我才知道是怎么输出(进入一个/../part*文件。但现在我想的是要能够指定两个precises文件不同的输出,这取决于钥匙) :

public static class NormalizeReducer extends Reducer<LongWritable, NetflixRating, LongWritable, NetflixUser> {
    public void reduce(LongWritable key, Iterable<NetflixRating> values, Context context) throws IOException, InterruptedException {
        NetflixUser user = new NetflixUser(key.get());
        for(NetflixRating r : values) {
            user.addRating(new NetflixRating(r));
        }
        user.normalizeRatings();
        user.reduceRatings();
        context.write(key, user);
    }
}

编辑:所以我做的方法在过去的批评是对你所提到的,阿马尔。 我不知道,如果它的作品,我还有其他的问题,我的HDFS,但我忘记之前,让我们把这里我发现了文明的缘故:

http://archive.cloudera.com/cdh/3/hadoop-0.20.2+228/api/org/apache/hadoop/mapreduce/lib/output/MultipleOutputs.html

  • MultipleOutputs不到位FormatOutputFormat的作用。 您可以定义一个输出路径与FormatOutputFormat,然后你可以添加更多的多MultipleOutputs。
  • addNamedOutput方法:字符串namedOutput只是谁形容一个字。
  • 你在写方法,字符串baseOutputPath ARG实际上定义的路径。

Answer 1:

所以我做的方法在过去的批评是对你所提到的,阿马尔。 我不知道,如果它的作品,我还有其他的问题,我的HDFS,但我忘记之前,让我们把这里我发现了文明的缘故:

http://archive.cloudera.com/cdh/3/hadoop-0.20.2+228/api/org/apache/hadoop/mapreduce/lib/output/MultipleOutputs.html

MultipleOutputs不到位FormatOutputFormat的作用。 您可以定义一个输出路径与FormatOutputFormat,然后你可以添加更多的多MultipleOutputs。 addNamedOutput方法:字符串namedOutput只是谁形容一个字。 你在写方法,字符串baseOutputPath ARG实际上定义的路径。



文章来源: Multiple output path (Java - Hadoop - MapReduce)