最近在调试mapreduce中使用avro的输入输出格式,这个轻量级的数据格式还是比较方便的,在数据的处理中可以把数据定义为对象来进行处理,同时数据类的生成也只需要定义好avsc的配置文件即可(具体的可以参照apache的官网上的内容)。
遇到的问题还是不少的:
1.读取avro格式的文件失败,报了nullpointer的错误。
参看了mr的日志发现没有进入map进行数据的分割和处理,仔细检查avro的输入输出的格式配置上发现,将job.setinputvalueSchema写成了setoutputvalueSchema;
2.avro生成类文件失败,原因在于pom文件中的路径设置错误。
基本上mr的调试错误只能看日志信息,一般如果map或者reduce的程序都没运行的话,需要仔细检查配置文件以及配置信息。