hadoop - 启动 spark-submit 时出错,因为 avro

标签 hadoop apache-spark avro

我正在用 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)

你能帮帮我吗?

谢谢

最佳答案

好的, 我喜欢这个解决方案: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/

关于hadoop - 启动 spark-submit 时出错,因为 avro,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30910905/

相关文章:

hadoop - ParseException第6:5行无法识别joinSource中 '(' 'SELECT' 'system'附近的输入

java - 更改mapreduce的默认定界符

python - 如何将 pyspark 数据框列转换为 numpy 数组

scala - Spark : Concatenating lists?

apache-spark - 在 Spark SQL 中使用 Avro 模式和 Parquet 格式进行读/写

hadoop - Avro格式的SQOOP IMPORT失败

java - Flink 抛出 com.esotericsoftware.kryo.KryoException : java. lang.NullPointerException

Hadoop:服务中的奴隶,但什么都不做

java - SPARK 分区和 Worker Core 之间有什么区别?

java - org.apache.spark.sql.AnalysisException : Table and view not found