问题:在运行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>