java - 使用MultipleOutputs和EMR JAVA的Hadoop

标签 java hadoop emr

我正在使用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)吗?
似乎是读/写并发

关于java - 使用MultipleOutputs和EMR JAVA的Hadoop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47733586/

相关文章:

java - 以编程方式添加带有约束的textView

java - 正则表达式还是异常处理?

java - 如何在 android phonegap 应用程序中获取 webview url?

java - 如何仅为基本域(无子域)创建 Play 1.x cookie

hadoop - 从pyspark连接HiveServer2

python - 使用 python MRJob 在 EMR 上引导库

hadoop - 将为 Hive 中的分区表创建多少个映射器和缩减器

hadoop - Hadoop FileSystem清除并复制文件

hadoop - 使用 S3DistCp 从 HDFS 传输到 S3 时删除目录级别

java - 让 Ant 把依赖的 jar 放在 ./lib