簡體   English   中英

使用MultipleOutputs和EMR JAVA的Hadoop

[英]Hadoop using MultipleOutputs with EMR JAVA

我正在使用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"); 
      }

您可以上傳例外嗎? 似乎是讀/寫並發

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM