【问题标题】:mapreduce job fails on AvroKeyInputFormat only on a clustermapreduce 作业仅在集群上在 AvroKeyInputFormat 上失败
【发布时间】:2018-02-21 15:20:49
【问题描述】:

我有一些 map-reduce 在本地机器上运行良好。

当我在远程集群上运行作业时,我收到此错误:

Error: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.avro.mapreduce.AvroKeyInputFormat not found
    at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2298)
    at org.apache.hadoop.mapreduce.task.JobContextImpl.getInputFormatClass(JobContextImpl.java:175)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:751)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
    at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:175)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:422)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1836)
    at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:169)

我的本​​地机器运行2.7.0hadoop版本,在我的远程集群上我有2.8.1hadoop版本

这个错误可能来自哪里?

【问题讨论】:

  • 如果有帮助,请检查我的答案并点赞/接受。

标签: hadoop mapreduce avro


【解决方案1】:

这不太可能,但您可以仔细检查您的依赖关系:

    <dependency>
            <groupId>org.apache.avro</groupId>
            <artifactId>avro-mapred</artifactId>
            <version>1.7.6</version>
    </dependency>

【讨论】:

    【解决方案2】:

    错误清楚地写着ClassNotFoundException: Class org.apache.avro.mapreduce.AvroKeyInputFormat

    这意味着类路径中缺少所需的 apache avro 库。

    Hadoop 通过以下命令从发出的路径中选择 jar 文件:

    $ hadoop classpath
    

    默认情况下,它会列出所有 hadoop 核心 jar。

    您可以通过在提示符下执行以下命令来添加您的 jar,或者添加到 shell 脚本以执行 map-reduce。

    export HADOOP_CLASSPATH=/path/to/my/apache_avro_jar.jar
    

    执行此操作后,尝试通过hadoop classpath 命令再次检查类路径,您应该能够看到您的 jar 与 hadoop 核心 jar 一起列出。

    尝试再次执行程序。

    另一种选择是通过包含 apache avro jar 来创建程序的 fat jar。

    第三种选择是将 Apache Avro jar 添加到 mapreduce 类路径中,方法是通过 DistributedCache 添加它。

    DistributedCache.addFileToClassPath(avroJar, conf);
    

    【讨论】:

      猜你喜欢
      • 2014-06-28
      • 1970-01-01
      • 2021-02-03
      • 2014-01-22
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多