我想將Reducer結果寫入普通文件(例如.csv或.log文件),而不是寫入HDFS。所以我用下面的代碼在減速機類:Hadoop將輸出寫入普通文件
@Override
public void reduce(Text key, Iterable<LongWritable> values, Context context) throws IOException, InterruptedException {
// Standard algorithm for finding the max value
long sum = 0;
for (LongWritable value : values) {
sum++;
}
context.write(key, new LongWritable(sum));
System.out.println(key + " : " + sum);
Main.map.put(key.toString(), sum);
}
我打印地圖的內容到主類csv文件。但是,減速機完成後,文件是空的。我發現地圖是空的,因爲在reducer類中它沒有放置任何東西到地圖中,我也看不到控制檯中reducer中的任何System.out.println(key +「:」+ sum)。
這怎麼可能?他們不是在減速機班處理?
你到底想要完成什麼? – climbage
例如我運行word count,hadoop jar word count.jar輸入輸出,除了將輸出寫入HDFS之外,我還想將結果寫入諸如result.log之類的日誌文件中,並且此result.log與輸出文件在HDFS – user2552010