我想将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