我正在使用Hadoop 2.6.5,编写编写3个输出文件的程序。

当我在本地运行时,该程序运行良好,并创建了3个输出文件。
当我使用EMR运行它时,此行崩溃-文件已存在:O

我了解这不是将Hadoop与EMR结合使用的方法。

我看过这篇文章:
https://forums.aws.amazon.com/thread.jspa?threadID=131036

但是我没有这种方法:mos.getCollector
而且我没有找到有关如何使用EMR在Java中使用mos的文档。

这是我的Reducer的代码:

@Override
    protected void setup(Context context)
            throws IOException, InterruptedException {
        // TODO Auto-generated method stub
        mos = new MultipleOutputs<>(context);
    }
@Override
protected void cleanup(Reducer<Text, IntWritable, Text, IntWritable>.Context context)
        throws IOException, InterruptedException {
    // TODO Auto-generated method stub
    mos.close();

}

... reduce方法的结束-写入结果文件部分(1、2和3)
if (keyArr.length == 1) {
              mos.write(key, result, "ones.txt");
      }
      else if (keyArr.length == 2) {
              mos.write(key, result, "twos.txt");
      }
      else {
              mos.write(key, result, "threes.txt");
      }

最佳答案

您可以上传异常(exception)吗?
似乎是读/写并发

08-28 04:54