问题:在运行mapreduce读取avro的record时:
Found interface org.apache.hadoop.mapreduce.TaskAttemptContext, but class was expected     at org.apache.avro.mapreduce.AvroKeyInputFormat.createRecordReader
 
原因:avro的版本和hadoop的版本不兼容,avro建立在hadoop1.0上的,而hadoop用的2.0
解决方法:

Simple solution - avro need to be compiled against hadoop 2

<dependency>
    <groupId>org.apache.avro</groupId>
    <artifactId>avro-mapred</artifactId>
    <version>1.7.4</version>
    <classifier>hadoop2</classifier>
</dependency>