У нас есть полная фляга, которую мы используем на 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 при загрузке. Я подозреваю, что это проблема ребенка - просто нужно выяснить, как синхронизировать версии