【问题标题】:java.lang.LinkageError in Spark StreamingSpark Streaming 中的 java.lang.LinkageError
【发布时间】:2019-09-27 07:30:34
【问题描述】:

我在带有 Scala 2.11.8 的 CDH 5.10 集群上使用 Spark 2.2。一切正常,但后来我突然开始在驱动程序代码中得到这个:

     Exception in thread "main" java.lang.LinkageError: loader constraint violation: when resolving method 
    "org.apache.spark.streaming.StreamingContext$.getOrCreate(Ljava/lang/String;Lscala/Function0;Lorg/apache/hadoop/conf/Configuration;Z)Lorg/apache/spark/streaming/StreamingContext;" 
    the class loader (instance of org/apache/spark/util/ChildFirstURLClassLoader) of the current class, com/hp/hawkeye/driver/StreamingDriver$, 
    and the class loader (instance of sun/misc/Launcher$AppClassLoader)
 for the method's defining class, org/apache/spark/streaming/StreamingContext$, 
have different Class objects for the type scala/Function0 used in the signature

有什么办法可以解决这个问题吗?

【问题讨论】:

    标签: apache-spark spark-streaming


    【解决方案1】:

    找到解决方案 - 存在类加载器冲突,这是因为手动将依赖项 jar 放置在集群上。这些帮助:

    rm -rf ~/.sbt
    rm -rf ~/.ivy2/cache
    

    然后重新启动 IDEA。集群上的 Spark-submit 很好。但是在 lib (spark-avro-assembly-4.0.0-snapshot) 中放置一个额外的依赖 jar 会带来这个问题。不知何故,用 spark-avro 3.2 修复了 Spark 2.2 的 jar 造成了问题。

    【讨论】:

      猜你喜欢
      • 2020-03-19
      • 1970-01-01
      • 2020-09-12
      • 1970-01-01
      • 1970-01-01
      • 2016-06-13
      • 2017-12-30
      • 2015-12-18
      • 2018-09-10
      相关资源
      最近更新 更多