Hi,
I created my mapreduce example for hadoop 2.0.4, and how I print the logs
in the console output? The System.out.println(), Logger.getRootLogger(),
and Logger.getLogge(MyClass.class) don't print nothing.
Here is my code.
public class WordCountAggregator extends Configured implements Tool {
public static Logger LOG = Logger.getLogger(WordCountAggregator.class);
public static Logger LOG2 = Logger.getRootLogger();
/**
* Counts the words in each line.
* For each line of input, break the line into words and emit them as
* (<b>word</b>, <b>1</b>).
*/
public static class MapClass extends MapReduceBase
implements Mapper<LongWritable, Text, Text, IntWritable> {
private Text word = new Text();
public void map(LongWritable key, Text value,
OutputCollector<Text, IntWritable> output,
Reporter reporter) throws IOException {
LOG.setLevel(Level.INFO);
LOG.addAppender(new ConsoleAppender());
String line = value.toString();
System.out.println("LLLLLLLLLL " + line);
LOG.debug("LLLLLLLLLL " + line);
LOG2.debug("LLLLLLLLLL " + line);
StringTokenizer itr = new StringTokenizer(line);
while (itr.hasMoreTokens()) {
String l = itr.nextToken();
LOG.info("ABC " + l);
String[] splits = l.split(" ");
word.set(splits[0]);
output.collect(word, new
IntWritable(Integer.valueOf(splits[1])));
}
}
}
/**
* A reducer class that just emits the sum of the input values.
*/
public static class Reduce extends MapReduceBase
implements Reducer<Text, IntWritable, Text, IntWritable> {
public void reduce(Text key, Iterator<IntWritable> values,
OutputCollector<Text, IntWritable> output,
Reporter reporter) throws IOException {
int sum = 0;
while (values.hasNext()) {
sum += values.next().get();
}
output.collect(key, new IntWritable(sum));
}
}
}
--
Best regards,