проблема совместимости библиотеки при импорте и использовании жирного фляги в Zeppelin - PullRequest
0 голосов
/ 07 ноября 2019

У нас есть полная фляга, которую мы используем на EMR, в которой хранятся все наши искровые задания, а также вспомогательные методы для стандартизированного чтения / записи наборов данных в s3.

Мы хотели бы сделать эти вспомогательныеметоды, доступные нашим инженерам и ученым при создании прототипов на Zeppelin, поэтому я попытался импортировать нашу банку непосредственно в Zeppelin с некоторыми изменениями. Я удостоверился, что мы используем ту же версию SparkSession и spark, что и Zeppelin (spark 2.4.0), а также версию hadoop-aws, но я все еще получаю эту ошибку, когда мы пытаемся сделать любой groupBys на Zeppelin (методы select и direct agg работают нормально):

org.apache.spark.SparkException: Job aborted due to stage failure: Task 1 in stage 6.0 failed 4 times, most recent failure: Lost task 1.3 in stage 6.0 (TID 286, ip-10-251-105-128.ec2.internal, executor 1): java.io.InvalidClassException: org.apache.spark.sql.execution.FileSourceScanExec; local class incompatible: stream classdesc serialVersionUID = 2742886231279821360, local class serialVersionUID = 4939607015738524857

Я предполагаю, что у нас есть несоответствие библиотеки между исполнителями и мастером, вызванное загрузкой толстого фляги. Я просто пытаюсь найти виновника и был бы признателен за другую пару глаз.

Вот что использует кластер EMR:

Release label:emr-5.23.0
Hadoop distribution:Amazon 2.8.5
Applications:Ganglia 3.7.2, Spark 2.4.0, Zeppelin 0.8.1

А вот зависимости, определенные в моем толстом сосудефайл сборки:

libraryDependencies += "org.apache.hadoop" % "hadoop-aws" % "2.8.5"
libraryDependencies += "org.apache.spark" %% "spark-hive" % sparkVersion % "provided"
libraryDependencies += "org.apache.spark" %% "spark-core" % sparkVersion % "provided"
libraryDependencies += "org.apache.spark" %% "spark-sql" % sparkVersion
libraryDependencies += "com.typesafe" % "config" % "1.3.0"
libraryDependencies += "com.amazonaws" % "aws-java-sdk" % "1.11.189"
libraryDependencies += "com.fasterxml.jackson.core" % "jackson-core" % "2.6.5"
libraryDependencies += "com.fasterxml.jackson.core" % "jackson-databind" % "2.6.5"
libraryDependencies += "com.fasterxml.jackson.module" % "jackson-module-scala_2.11" % "2.6.5"
libraryDependencies += "com.clearspring.analytics" % "stream" % "2.9.5"
libraryDependencies += "com.company" % "company-shared" % "1.0.98-SNAPSHOT"
libraryDependencies += "com.company" % "companycalc" % "1.0.98-SNAPSHOT"
libraryDependencies ++= Seq(
  "org.slf4s" %% "slf4s-api" % "1.7.12",
  "ch.qos.logback" % "logback-classic" % "1.1.2" excludeAll ExclusionRule(organization = "io.netty")
)
libraryDependencies += "org.scalanlp" %% "breeze" % "0.13.2"
libraryDependencies += "org.scalatest" %% "scalatest-all" % "3.0.0-M11"

libraryDependencies += "org.apache.spark" %% "spark-mllib" % sparkVersion % "runtime"
libraryDependencies += "io.spray" %% "spray-json" % "1.3.5"

dependencyOverrides += "com.fasterxml.jackson.core" % "jackson-core" % "2.6.5"
dependencyOverrides += "com.fasterxml.jackson.core" % "jackson-databind" % "2.6.5"
dependencyOverrides += "com.fasterxml.jackson.module" % "jackson-module-scala_2.11" % "2.6.5"

libraryDependencies += "io.prometheus" % "simpleclient" % "0.6.0"
libraryDependencies += "io.prometheus" % "simpleclient_common" % "0.6.0"
libraryDependencies += "io.prometheus" % "simpleclient_pushgateway" % "0.6.0"
//libraryDependencies += "com.julianpeeters" %% "avrohugger-core" % "1.0.0-RC18"

libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.5" % "test"

То, что я уже пробовал:

Попытка сделать spark-sql предоставленной библиотекой, но на самом деле при загрузке происходит сбой zeppelin при загрузке. Я подозреваю, что это проблема ребенка - просто нужно выяснить, как синхронизировать версии

...