Я пытаюсь получить пример работы kafka и spark-streaming, и у меня возникают проблемы при запуске процесса.
это исключение:
[ошибка] Причина: com.fasterxml.jackson.databind.JsonMappingException: несовместимая версия Джексона: 2.9.8
Это build.sbt:
name := "SparkJobs"
version := "1.0"
scalaVersion := "2.11.6"
val sparkVersion = "2.4.1"
val flinkVersion = "1.7.2"
resolvers ++= Seq(
"Typesafe Releases" at "http://repo.typesafe.com/typesafe/releases/",
"apache snapshots" at "http://repository.apache.org/snapshots/",
"confluent.io" at "http://packages.confluent.io/maven/",
"Maven central" at "http://repo1.maven.org/maven2/"
)
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % sparkVersion,
"org.apache.spark" %% "spark-sql" % sparkVersion,
"org.apache.spark" %% "spark-streaming" % sparkVersion,
"org.apache.spark" %% "spark-streaming-kafka-0-10" % sparkVersion,
"org.apache.spark" %% "spark-hive" % sparkVersion
// ,"org.apache.flink" %% "flink-connector-kafka-0.10" % flinkVersion
, "org.apache.kafka" %% "kafka-streams-scala" % "2.2.0"
// , "io.confluent" % "kafka-streams-avro-serde" % "5.2.1"
)
//excludeDependencies ++= Seq(
// commons-logging is replaced by jcl-over-slf4j
// ExclusionRule("jackson-module-scala", "jackson-module-scala")
//
)
Это код
Выполнение дерева зависимостей sbt Я вижу, что spark-core_2.11-2.4.1.jar
имеет jackson-databind-2.6.7.1
,и это говорит мне, что оно выселено 2.9.8 version
, что предполагает наличие конфликта между библиотеками, но spark-core_2.11-2.4.1.jar
не единственный, kafka-streams-scala_2.11:2.2.0
использует версию jackson-databind-2.9.8
, поэтому я не знаюкакая библиотека должна выселить jackson-databind-2.9.8.
Spark-core / kafka-streams-scala?или оба?
Как мне избежать Джексона library version 2.9.8
, чтобы запустить эту задачу?
Я предполагаю, что мне нужно jackson-databind-2.6.7 version
...
ОБНОВЛЕНИЕ с советами.Все еще не работает.
Я удалил зависимости kafka-stream-scala, который пытается использовать Джексон 2.9.8, используя этот build.sbt
name := "SparkJobs"
version := "1.0"
scalaVersion := "2.11.6"
val sparkVersion = "2.4.1"
val flinkVersion = "1.7.2"
val kafkaStreamScala = "2.2.0"
resolvers ++= Seq(
"Typesafe Releases" at "http://repo.typesafe.com/typesafe/releases/",
"apache snapshots" at "http://repository.apache.org/snapshots/",
"confluent.io" at "http://packages.confluent.io/maven/",
"Maven central" at "http://repo1.maven.org/maven2/"
)
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % sparkVersion ,
"org.apache.spark" %% "spark-sql" % sparkVersion,
"org.apache.spark" %% "spark-streaming" % sparkVersion,
"org.apache.spark" %% "spark-streaming-kafka-0-10" % sparkVersion,
"org.apache.spark" %% "spark-hive" % sparkVersion
)
Но я получил новый исключение
ОБНОВЛЕНИЕ 2
получил его, теперь я понимаю второе исключение, я забыл ждать awaTToTermination.