【问题标题】:Error while I launch spark-submit because avro我启动 spark-submit 时出错,因为 avro
【发布时间】:2015-06-18 09:01:16
【问题描述】:

我正在 Spark 中创建一个应用程序。 我在 Hadoop2 的 HDFS 中使用 avro 文件。 我使用 maven,并且像这样包含 avro:

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

我做了一个单元测试,当我使用 mvn test 时,一切正常。 但是当我用 spark 启动时,不提交! 我有这个错误:

Exception in thread "main" org.apache.spark.SparkException: Job aborted due to stage failure: Task 1 in stage 0.0 failed 1 times, most recent failure: Lost task 1.0 in stage 0.0 (TID 1, localhost): java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.TaskAttemptContext, but class was expected
    at org.apache.avro.mapreduce.AvroKeyInputFormat.createRecordReader(AvroKeyInputFormat.java:47)

你能帮帮我吗?

谢谢

【问题讨论】:

    标签: hadoop apache-spark avro


    【解决方案1】:

    好的, 我喜欢解决方案:D 感谢http://apache-spark-developers-list.1001551.n3.nabble.com/Fwd-Unable-to-Read-Write-Avro-RDD-on-cluster-td10893.html

    解决方案是在你的 SPARK_CLASSPATH 中添加 jar

    export SPARK_CLASSPATH=yourpath/avro-mapred-1.7.7-hadoop2.jar:yourpath/avro-1.7.7.jar
    

    你可以在这里下载jar:http://repo1.maven.org/maven2/org/apache/avro/avro-mapred/1.7.7/

    【讨论】:

    • 你也可以在你的配置文件 extraclasspath 中更新同样的内容
    【解决方案2】:

    但这不是 spark-submit --master yarn-cluster 的解决方案

    我又遇到了同样的错误:

    WARN scheduler.TaskSetManager: Lost task 9.1 in stage 0.0 (TID 15, 10.163.34.129): java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.TaskAttemptContext, but class is expected 在 org.apache.avro.mapreduce.AvroKeyInputFormat.createRecordReader(AvroKeyInputFormat.java:47)

    有人有其他想法吗?

    【讨论】:

      猜你喜欢
      • 2019-10-23
      • 1970-01-01
      • 2018-04-19
      • 1970-01-01
      • 1970-01-01
      • 2020-10-07
      • 2020-04-07
      • 2019-05-14
      • 2015-07-17
      相关资源
      最近更新 更多