Я нахожусь в кластере AWS EMR. Я только что встал, у меня есть файл scala, который скомпилирован, и тот, который я хотел бы встроить в сборку. Однако, когда я запускаю сборку sbt, я сталкиваюсь с ошибками дедупликации.
Per https://medium.com/@tedherman / compile- scala -on-emr-cb77610559f0 Первоначально у меня была ссылка на символ c для моей библиотеки usr lib spark jars;
ln -s /usr/lib/spark/jars lib
хотя я заметил, что мой код передает sbt-компиляцию с этим или без него. Однако я не понимаю, почему и как разрешать ошибки дублирования сборки sbt. Я также отмечу, что я устанавливаю sbt в действиях bootstrap согласно статье.
С помощью ссылки symboli c в
Некоторые дедупликации кажутся четкие точные обманы; пример:
[error] deduplicate: different file contents found in the following:
[error] /home/hadoop/.ivy2/cache/org.apache.parquet/parquet-jackson/jars/parquet-jackson-1.10.1.jar:shaded/parquet/org/codehaus/jackson/util/CharTypes.class
[error] /usr/lib/spark/jars/parquet-jackson-1.10.1-spark-amzn-1.jar:shaded/parquet/org/codehaus/jackson/util/CharTypes.class
Другие, кажется, конкурирующие версии;
[error] deduplicate: different file contents found in the following:
[error] /home/hadoop/.ivy2/cache/org.apache.spark/spark-core_2.11/jars/spark-core_2.11-2.4.3.jar:org/spark_project/jetty/util/MultiPartOutputStream.class
[error] /usr/lib/spark/jars/spark-core_2.11-2.4.5-amzn-0.jar:org/spark_project/jetty/util/MultiPartOutputStream.class
Я не понимаю, почему существуют конкурирующие версии; или если они по умолчанию такие, или я сделал что-то, чтобы их представить.
Без символа c ссылка
Я подумал, что если бы я удалил это, я бы меньше проблем; хотя у меня все еще есть дубли (только меньше);
[error] deduplicate: different file contents found in the following:
[error] /home/hadoop/.ivy2/cache/org.apache.hadoop/hadoop-yarn-api/jars/hadoop-yarn-api-2.6.5.jar:org/apache/hadoop/yarn/factory/providers/package-info.class
[error] /home/hadoop/.ivy2/cache/org.apache.hadoop/hadoop-yarn-common/jars/hadoop-yarn-common-2.6.5.jar:org/apache/hadoop/yarn/factory/providers/package-info.class
Я не понимаю, почему вышеизложенное является обманом, учитывая, что у одного есть oop -yarn-api-2.6.5.jar, а другой имеет oop -yarn-common-2.6.5.jar. Разные имена, так почему же обман?
Другие кажутся версиями;
[error] deduplicate: different file contents found in the following:
[error] /home/hadoop/.ivy2/cache/javax.inject/javax.inject/jars/javax.inject-1.jar:javax/inject/Named.class
[error] /home/hadoop/.ivy2/cache/org.glassfish.hk2.external/javax.inject/jars/javax.inject-2.4.0-b34.jar:javax/inject/Named.class
У некоторых то же имя файла, но разные пути / jar-файлы ...
[error] deduplicate: different file contents found in the following:
[error] /home/hadoop/.ivy2/cache/org.apache.arrow/arrow-format/jars/arrow-format-0.10.0.jar:git.properties
[error] /home/hadoop/.ivy2/cache/org.apache.arrow/arrow-memory/jars/arrow-memory-0.10.0.jar:git.properties
[error] /home/hadoop/.ivy2/cache/org.apache.arrow/arrow-vector/jars/arrow-vector-0.10.0.jar:git.properties
То же самое с этими ...
[error] deduplicate: different file contents found in the following:
[error] /home/hadoop/.ivy2/cache/org.apache.spark/spark-catalyst_2.11/jars/spark-catalyst_2.11-2.4.3.jar:org/apache/spark/unused/UnusedStubClass.class
[error] /home/hadoop/.ivy2/cache/org.apache.spark/spark-core_2.11/jars/spark-core_2.11-2.4.3.jar:org/apache/spark/unused/UnusedStubClass.class
[error] /home/hadoop/.ivy2/cache/org.apache.spark/spark-graphx_2.11/jars/spark-graphx_2.11-2.4.3.jar:org/apache/spark/unused/UnusedStubClass.class
Для справки, некоторая другая информация
импортирует в мой scala объект
import org.apache.spark.sql.SparkSession
import java.time.LocalDateTime
import com.amazonaws.regions.Regions
import com.amazonaws.services.secretsmanager.AWSSecretsManagerClientBuilder
import com.amazonaws.services.secretsmanager.model.GetSecretValueRequest
import org.json4s.{DefaultFormats, MappingException}
import org.json4s.jackson.JsonMethods._
import com.datarobot.prediction.spark.Predictors.{getPredictorFromServer, getPredictor}
Мой build.sbt
libraryDependencies ++= Seq(
"net.snowflake" % "snowflake-jdbc" % "3.12.5",
"net.snowflake" % "spark-snowflake_2.11" % "2.7.1-spark_2.4",
"com.datarobot" % "scoring-code-spark-api_2.4.3" % "0.0.19",
"com.datarobot" % "datarobot-prediction" % "2.1.4",
"com.amazonaws" % "aws-java-sdk-secretsmanager" % "1.11.789",
"software.amazon.awssdk" % "regions" % "2.13.23"
)
Мысли? Пожалуйста, сообщите.