noclassdeffounderror,无法运行mapreducecolorcount(avro 1.7.7)

0sgqnhkj  于 2021-05-30  发布在  Hadoop
关注(0)|答案(2)|浏览(360)

尝试基于网页运行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文件,显示是可怕的,尝试之间的代码引号,但没有工作。

lnvxswe2

lnvxswe21#

如果使用maven构建jar,则需要添加以下依赖项:

<dependency>
        <groupId>org.apache.avro</groupId>
        <artifactId>avro</artifactId>
    </dependency>

并制作一个胖jar在命令控制台中运行它。

vd8tlhqk

vd8tlhqk2#

下载 avro-mapred-1.7.1.jar 并将其添加到类路径中。

相关问题