私はScala jarファイルをビルドしてスパークで実行しようとしています。
私はこれに従っています チュートリアル 。
sbtを here として使用してjarファイルをビルドしようとすると、次のエラーが発生します
[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
問題とその解決方法.
依存関係の問題が解決されました。 「om-nom-nom」ありがとう
しかし、新しいエラーが発生しました
[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
あなたはあなたの依存関係を次のように定義しています
"org.Apache.spark" %% "spark-core" % "1.0.2"
それ %%
は、sbtに現在のscalaバージョンをアーティファクト名に置き換えるように指示します。どうやら sparkは2.10のファミリ全体に対してビルドされました scala、2.10.1の特定のjarなしで、 2.10.2 ...
したがって、次のように再定義するだけです。
"org.Apache.spark" % "spark-core_2.10" % "1.0.2"
同じ問題がありました。いくつかのバグは異なるバージョン/コンパイル/などにあるようです。
私にとっては、次のbuild.sbtはうまくいきました
name := "My Project"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies += "org.Apache.spark" %% "spark-sql" % "2.3.2"
それが役に立てば幸い
spark-core_2.10.4; 1.0.2は、scala 2.10バージョンの上にビルドされることを意味します。そのため、ビルドファイルでこのscalaVersion:= "2.10.4"を指定する必要があります。 .sbtファイルを確認して、適宜変更してください。
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"
)
現在の依存関係をどのように変更できますか?つまり、次のようなビルドファイルのsbtパッケージを入力すると、
name := "Simple Project"
version := "1.0"
scalaVersion := "2.10.4"
libraryDependencies += "org.Apache.spark" %% "spark-core" % "1.2.0"
SBTは、あらゆる種類の依存関係の解決とダウンロードを開始します。しかし、Mavenリポジトリに存在しない依存関係で失敗していることがわかった場合は、どうすればよいですか?試行するdpencyはどこで変更できますか。
@OP:問題は、SBTが古いことです。 aptを使用してダウンロードした場合は、aptを使用して削除することもできます。いずれの場合でも、最新の.tgz(.debではなく)をダウンロードして解凍するだけです。その後、.sash/bin /フォルダーを.bashrcに追加します。古いSBT(.debおよびapt-getバージョン)が機能することに気付きました古いscalaバージョン。古いSBTが検出しようとしている依存関係を手動で追加または変更するか、単に最新の(sooではない)SBTに変更する必要があります。