【问题标题】:NoClassDefFoundError, cannot run MapReduceColorCount (Avro 1.7.7)NoClassDefFoundError,无法运行 MapReduceColorCount (Avro 1.7.7)
【发布时间】:2014-08-27 12:54:24
【问题描述】:

当尝试基于网页 http://avro.apache.org/docs/1.7.7/mr.html 运行 MapReduceColorCount(新 MapReduce API)时,我得到以下信息:

[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 文件,显示效果很糟糕,在代码引号之间尝试但没有用。

【问题讨论】:

    标签: java maven hadoop avro


    【解决方案1】:

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

    【讨论】:

    • 非常感谢,只是为了完成信息(对于像我这样的初学者)我已经按照wikihow.com/… 中解释的过程在使用 Eclipse 时添加 Jars。
    【解决方案2】:

    如果你使用maven来构建你的jar,你需要添加如下依赖:

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

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

    【讨论】:

      猜你喜欢
      • 2016-10-29
      • 1970-01-01
      • 1970-01-01
      • 2018-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-14
      相关资源
      最近更新 更多