2017-02-03 2 views
0

Это ошибка, что я получаю:Спарк Кафка Streaming дает Несовместимому Джексон Exception

java.lang.ExceptionInInitializerError 
    at org.apache.spark.streaming.dstream.InputDStream.<init>(InputDStream.scala:78) 
    at org.apache.spark.streaming.kafka010.DirectKafkaInputDStream.<init>(DirectKafkaInputDStream.scala:62) 
    at org.apache.spark.streaming.kafka010.KafkaUtils$.createDirectStream(KafkaUtils.scala:150) 
    at org.apache.spark.streaming.kafka010.KafkaUtils$.createDirectStream(KafkaUtils.scala:127) 
    at chirpanywhere.stream.classification.service.streaming.StreamingClassificationPipeline.createStreamAndTransform(StreamingClassificationPipeline.scala:69) 
    at chirpanywhere.stream.classification.service.streaming.StreamingClassificationPipeline.streamAndUpdateMLModelCache(StreamingClassificationPipeline.scala:58) 
    at chirpanywhere.stream.classification.service.streaming.StreamingClassificationPipeline.run(StreamingClassificationPipeline.scala:54) 
    at chirpanywhere.stream.classification.service.Boot$.main(Boot.scala:10) 
    at chirpanywhere.stream.classification.service.Boot.main(Boot.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) 
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Incompatible Jackson version: 2.7.8 
    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) 
    at org.apache.spark.streaming.dstream.InputDStream.<init>(InputDStream.scala:78) 
    at org.apache.spark.streaming.kafka010.DirectKafkaInputDStream.<init>(DirectKafkaInputDStream.scala:62) 
    at org.apache.spark.streaming.kafka010.KafkaUtils$.createDirectStream(KafkaUtils.scala:150) 
    at org.apache.spark.streaming.kafka010.KafkaUtils$.createDirectStream(KafkaUtils.scala:127) 
    at chirpanywhere.stream.classification.service.streaming.StreamingClassificationPipeline.createStreamAndTransform(StreamingClassificationPipeline.scala:69) 
    at chirpanywhere.stream.classification.service.streaming.StreamingClassificationPipeline.streamAndUpdateMLModelCache(StreamingClassificationPipeline.scala:58) 
    at chirpanywhere.stream.classification.service.streaming.StreamingClassificationPipeline.run(StreamingClassificationPipeline.scala:54) 
    at chirpanywhere.stream.classification.service.Boot$.main(Boot.scala:10) 
    at chirpanywhere.stream.classification.service.Boot.main(Boot.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) 

Может кто-то пожалуйста, скажите мне, что это проблема.

Моего build.sbt выглядит следующим образом:

val akkaHttpV = "10.0.0" 
    val sparkV = "2.1.0" 

"log4j" % "log4j" % "1.2.17", 
    "com.typesafe.akka" %% "akka-http" % akkaHttpV, 
    "com.typesafe.akka" %% "akka-http-spray-json" % akkaHttpV, 
    "org.slf4j" % "slf4j-api" % "1.7.21", 
    "org.apache.spark" %% "spark-core" % sparkV, 
    "org.apache.spark" %% "spark-sql" % sparkV, 
    "org.apache.spark" %% "spark-streaming" % sparkV, 
    "org.apache.spark" %% "spark-mllib" % sparkV, 
    "com.github.blemale" %% "scaffeine" % "2.0.0" % "compile", 
    "org.apache.spark" %% "spark-streaming-kafka-0-10" % sparkV , 
    "com.datastax.spark" %% "spark-cassandra-connector" % "2.0.0-M3", 
    "org.json4s" %% "json4s-native" % "3.5.0" , 
    "org.scalatest" %% "scalatest" % "3.0.0" % "test", 
+0

Ошибка довольно проста. Какую зависимость от Jackson вы компилируете, и какой из них использует Spark? –

+1

Я не добавил никакой зависимости Jackson! Поэтому задал этот вопрос! –

+2

Попробуйте визуализировать зависимости с помощью [диаграммы зависимостей SBT] (https://github.com/jrudolph/sbt-dependency-graph), чтобы узнать, какая зависимость потребляет его. –

ответ

2

Исключение брошено модуль Джексон Scala, при проверке версии jackson-databind, развернутый с ним. Модуль Scala требует такой же младшей версии; в этом случае сообщение об исключении является неполным (оно должно включать обе версии). Я предполагаю, что у вас есть более новый jackson-databind (2.7.8 - хорошая недавняя версия) и более старый модуль Scala, возможно, один пакет Spark (2.5.3?).

Модуль Scala довольно осторожен здесь, так как часто «близкие» второстепенные версии работают, но решение заключается в обеспечении того, что модуль данных и модуль Scala имеют одну и ту же второстепенную версию (и могут также иметь такую ​​же версию патча).