J'essaie de construire un fichier jar Scala pour l'exécuter dans spark.
Je suis ce tutorial .
en essayant de construire le fichier jar en utilisant sbt comme ici , je suis confronté à l'erreur suivante
[info] Resolving org.Apache.spark#spark-core_2.10.4;1.0.2 ...
[warn] module not found: org.Apache.spark#spark-core_2.10.4;1.0.2
[warn] ==== local: tried
[warn] /home/hduser/.ivy2/local/org.Apache.spark/spark-core_2.10.4/1.0.2/ivys/ivy.xml
[warn] ==== Akka Repository: tried
[warn] http://repo.akka.io/releases/org/Apache/spark/spark-core_2.10.4/1.0.2/spark-core_2.10.4-1.0.2.pom
[warn] ==== public: tried
[warn] http://repo1.maven.org/maven2/org/Apache/spark/spark-core_2.10.4/1.0.2/spark-core_2.10.4-1.0.2.pom
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: org.Apache.spark#spark-core_2.10.4;1.0.2: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[error] {file:/home/prithvi/scala/asd/}default-d57abf/*:update: sbt.ResolveException: unresolved dependency: org.Apache.spark#spark-core_2.10.4;1.0.2: not found
[error] Total time: 2 s, completed 13 Aug, 2014 5:24:24 PM
quel est le problème et comment le résoudre.
Le problème de dépendance a été résolu. Merci "om-nom-nom"
mais une nouvelle erreur est survenue
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: FAILED DOWNLOADS ::
[warn] :: ^ see resolution messages for details ^ ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: org.Eclipse.jetty.orbit#javax.transaction;1.1.1.v201105210645!javax.transaction.orbit
[warn] :: org.Eclipse.jetty.orbit#javax.servlet;3.0.0.v201112011016!javax.servlet.orbit
[warn] :: org.Eclipse.jetty.orbit#javax.mail.glassfish;1.4.1.v201005082020!javax.mail.glassfish.orbit
[warn] :: org.Eclipse.jetty.orbit#javax.activation;1.1.0.v201105071233!javax.activation.orbit
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[error] {file:/home/prithvi/scala/asd/}default-c011e4/*:update: sbt.ResolveException: download failed: org.Eclipse.jetty.orbit#javax.transaction;1.1.1.v201105210645!javax.transaction.orbit
[error] download failed: org.Eclipse.jetty.orbit#javax.servlet;3.0.0.v201112011016!javax.servlet.orbit
[error] download failed: org.Eclipse.jetty.orbit#javax.mail.glassfish;1.4.1.v201005082020!javax.mail.glassfish.orbit
[error] download failed: org.Eclipse.jetty.orbit#javax.activation;1.1.0.v201105071233!javax.activation.orbit
[error] Total time: 855 s, completed 14 Aug, 2014 12:28:33 PM
Votre dépendance est définie comme
"org.Apache.spark" %% "spark-core" % "1.0.2"
Ce %%
indique à sbt de remplacer la version actuelle de scala par le nom de l'artefact. Apparemment, spark a été construit pour toute la famille de 2.10 scala, sans jarres spécifiques pour 2.10.1, 2.10.2 ...
Donc tout ce que vous avez à faire est de le redéfinir comme suit:
"org.Apache.spark" % "spark-core_2.10" % "1.0.2"
J'ai eu le même problème… .. On dirait que certains bugs sont dans différentes versions/compilations/etc.
Pour moi, le build.sbt suivant a bien fonctionné
name := "My Project"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies += "org.Apache.spark" %% "spark-sql" % "2.3.2"
J'espère que ça aide
spark-core_2.10.4; 1.0.2 signifie qu'il est construit au-dessus de scala 2.10 vesion. Vous devez donc spécifier cette scalaVersion: = "2.10.4" dans votre fichier de construction. Veuillez vérifier votre fichier .sbt et le modifier en conséquence.
libraryDependencies ++= Seq(
"org.Apache.spark" %% "spark-core" % "1.1.0",
"org.Eclipse.jetty.orbit" % "javax.servlet" % "3.0.0.v201112011016",
"org.Eclipse.jetty.orbit" % "javax.transaction" % "1.1.1.v201105210645",
"org.Eclipse.jetty.orbit" % "javax.mail.glassfish" % "1.4.1.v201005082020"
)
Comment pouvez-vous changer les dépendances actuelles? Je veux dire, quand vous tapez le paquet sbt pour un fichier de construction comme:
name := "Simple Project"
version := "1.0"
scalaVersion := "2.10.4"
libraryDependencies += "org.Apache.spark" %% "spark-core" % "1.2.0"
SBT commencera à résoudre et à télécharger toutes sortes de dépendances. Mais si vous voyez qu’il échoue sur une dépendance qui n’est plus dans le référentiel maven, que faire? Où pouvez-vous changer les priorités qu’il essaie?.
@OP: Le problème est que votre SBT est obsolète. Si vous l'avez téléchargé avec apt, vous pouvez également utiliser apt pour le supprimer. Dans tous les cas, téléchargez le dernier fichier .tgz (pas le fichier .deb) et décompressez-le simplement. Après cela, ajoutez le dossier/sbt/bin/à votre fichier .bashrc. J'ai remarqué que les versions antérieures de SBT (les versions .deb et apt-get) fonctionnent. avec les anciennes versions de scala. Vous devez soit ajouter ou modifier manuellement les dépendances que l'ancien SBT tente de trouver, soit simplement modifier le dernier SBT (pas tellement).