[英]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.