복붙노트

[SCALA] Spark2.1.0 호환되지 않는 잭슨 버전 2.7.6

SCALA

Spark2.1.0 호환되지 않는 잭슨 버전 2.7.6

나는 인 IntelliJ에서 간단한 스파크 예제를 실행하려고하지만 그와 같은 오류가 발생합니다 :

Exception in thread "main" java.lang.ExceptionInInitializerError
at org.apache.spark.SparkContext.withScope(SparkContext.scala:701)
at org.apache.spark.SparkContext.textFile(SparkContext.scala:819)
at spark.test$.main(test.scala:19)
at spark.test.main(test.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Incompatible Jackson version: 2.7.6
at com.fasterxml.jackson.module.scala.JacksonModule$class.setupModule(JacksonModule.scala:64)
at com.fasterxml.jackson.module.scala.DefaultScalaModule.setupModule(DefaultScalaModule.scala:19)
at com.fasterxml.jackson.databind.ObjectMapper.registerModule(ObjectMapper.java:730)
at org.apache.spark.rdd.RDDOperationScope$.<init>(RDDOperationScope.scala:82)
at org.apache.spark.rdd.RDDOperationScope$.<clinit>(RDDOperationScope.scala)

내가 잭슨 의존성을 업데이트하려고해야하지만 그렇지 않은 일을 보인다, 나는이 작업을 수행 :

libraryDependencies += "com.fasterxml.jackson.core" % "jackson-core" % "2.8.7"
libraryDependencies += "com.fasterxml.jackson.core" % "jackson-databind" % "2.8.7"

하지만 여전히 어떤 하나의 도움이 나에게 오류를 수정 할 수 같은 오류 메시지가 나타 납니까?

여기서 스파크 예 코드 :

object test {
def main(args: Array[String]): Unit = {
    if (args.length < 1) {
        System.err.println("Usage: <file>")
        System.exit(1)
    }

    val conf = new SparkConf()
    val sc = new SparkContext("local","wordcount",conf)
    val line = sc.textFile(args(0))

    line.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_).collect().foreach(println)

    sc.stop()
    }
}

그리고 여기 내 built.sbt입니다 :

name := "testSpark2"

version := "1.0"

scalaVersion := "2.11.8"


libraryDependencies += "com.fasterxml.jackson.core" % "jackson-core" % "2.8.7"
libraryDependencies += "com.fasterxml.jackson.core" % "jackson-databind" % "2.8.7"

libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "2.1.0"
libraryDependencies += "org.apache.spark" % "spark-mllib_2.11" % "2.1.0"
libraryDependencies += "org.apache.spark" % "spark-repl_2.11" % "2.1.0"
libraryDependencies += "org.apache.spark" % "spark-streaming-flume_2.10" % "2.1.0"
libraryDependencies += "org.apache.spark" % "spark-sql_2.11" % "2.1.0"
libraryDependencies += "org.apache.spark" % "spark-network-shuffle_2.11" % "2.1.0"
libraryDependencies += "org.apache.spark" % "spark-streaming-kafka-0-10_2.11" % "2.1.0"
libraryDependencies += "org.apache.spark" % "spark-hive_2.11" % "2.1.0"
libraryDependencies += "org.apache.spark" % "spark-streaming-flume-assembly_2.11" % "2.1.0"
libraryDependencies += "org.apache.spark" % "spark-mesos_2.11" % "2.1.0"
libraryDependencies += "org.apache.spark" % "spark-graphx_2.11" % "2.1.0"
libraryDependencies += "org.apache.spark" % "spark-catalyst_2.11" % "2.1.0"
libraryDependencies += "org.apache.spark" % "spark-launcher_2.11" % "2.1.0"

해결법

  1. ==============================

    1.스파크 2.1.0은 이적 의존성 등 com.fasterxml.jackson.core가 포함되어 있습니다. 그래서 우리는 libraryDependencies에 다음을 포함 할 필요가 없습니다.

    스파크 2.1.0은 이적 의존성 등 com.fasterxml.jackson.core가 포함되어 있습니다. 그래서 우리는 libraryDependencies에 다음을 포함 할 필요가 없습니다.

    당신이 다음 다른 com.fasterxml.jackson.core 종속성 '버전을 추가하려는 경우 그러나 당신은 그들을 무시해야합니다. 이 같이 :

    name := "testSpark2"
    
    version := "1.0"
    
    scalaVersion := "2.11.8"
    
    
    dependencyOverrides += "com.fasterxml.jackson.core" % "jackson-core" % "2.8.7"
    dependencyOverrides += "com.fasterxml.jackson.core" % "jackson-databind" % "2.8.7"
    dependencyOverrides += "com.fasterxml.jackson.module" % "jackson-module-scala_2.11" % "2.8.7"
    
    libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "2.1.0"
    libraryDependencies += "org.apache.spark" % "spark-mllib_2.11" % "2.1.0"
    libraryDependencies += "org.apache.spark" % "spark-repl_2.11" % "2.1.0"
    libraryDependencies += "org.apache.spark" % "spark-streaming-flume_2.11" % "2.1.0"
    libraryDependencies += "org.apache.spark" % "spark-sql_2.11" % "2.1.0"
    libraryDependencies += "org.apache.spark" % "spark-network-shuffle_2.11" % "2.1.0"
    libraryDependencies += "org.apache.spark" % "spark-streaming-kafka-0-10_2.11" % "2.1.0"
    libraryDependencies += "org.apache.spark" % "spark-hive_2.11" % "2.1.0"
    libraryDependencies += "org.apache.spark" % "spark-streaming-flume-assembly_2.11" % "2.1.0"
    libraryDependencies += "org.apache.spark" % "spark-mesos_2.11" % "2.1.0"
    libraryDependencies += "org.apache.spark" % "spark-graphx_2.11" % "2.1.0"
    libraryDependencies += "org.apache.spark" % "spark-catalyst_2.11" % "2.1.0"
    libraryDependencies += "org.apache.spark" % "spark-launcher_2.11" % "2.1.0"
    

    그래서, 위의 일처럼 build.sbt을 변경하고 예상대로 작동합니다.

    나는 그것이 도움이되기를 바랍니다!

  2. ==============================

    2.참고하시기 바랍니다. 용도는 2.8.5을 com.fasterxml.jackson.core 카프카 - 스트림하면서 내 경우, 나는, 응용 프로그램에서 스파크와 카프카 스트림을 사용하고 있습니다. 고정 된 문제를 다음과 같이 제외 추가

    참고하시기 바랍니다. 용도는 2.8.5을 com.fasterxml.jackson.core 카프카 - 스트림하면서 내 경우, 나는, 응용 프로그램에서 스파크와 카프카 스트림을 사용하고 있습니다. 고정 된 문제를 다음과 같이 제외 추가

    (Gradle을)

    compile (group: "org.apache.kafka", name: "kafka-streams", version: "0.11.0.0"){
        exclude group:"com.fasterxml.jackson.core"
    }
    
  3. ==============================

    3.resolutionStrategy (https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html)를 사용하여 Gradle을 가진 솔루션 :

    resolutionStrategy (https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html)를 사용하여 Gradle을 가진 솔루션 :

    configurations {
    
        all {
    
            resolutionStrategy {
                force 'com.fasterxml.jackson.core:jackson-core:2.4.4', 'com.fasterxml.jackson.core:jackson-databind:2.4.4', 'com.fasterxml.jackson.core:jackson-annotations:2.4.4'
            }
        }
    }
    
  4. from https://stackoverflow.com/questions/43841091/spark2-1-0-incompatible-jackson-versions-2-7-6 by cc-by-sa and MIT license