尝试基于网页运行mapreducecolorcount(新mapreduce api)时http://avro.apache.org/docs/1.7.7/mr.html,我得到以下结果:
[cloudera@localhost ~]$ hadoop jar avroColorCount.jar exos.MapReduceColorCount2 inavro01 outavro01
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/avro/mapreduce/AvroKeyInputFormat
at exos.MapReduceColorCount2.run(MapReduceColorCount2.java:71)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
at exos.MapReduceColorCount2.main(MapReduceColorCount2.java:86)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
对于mrv1版本的代码,我得到了avromapper的noclassdeffounderror。对于我测试过的其他avro程序,我得到了avrojob的相同错误。
你知道这些错误的根本原因吗?注意:无法粘贴我的pom文件,显示是可怕的,尝试之间的代码引号,但没有工作。
2条答案
按热度按时间lnvxswe21#
如果使用maven构建jar,则需要添加以下依赖项:
并制作一个胖jar在命令控制台中运行它。
vd8tlhqk2#
下载
avro-mapred-1.7.1.jar
并将其添加到类路径中。