私はsbt
を使用して、私のscala
コードからjar
を構築する必要がありました:jbファイルはsbtで移植可能ですか?
sudo sbt package
それは私のビルドファイルを使用:私もうまくjar
を建て
name := "PSG CCD"
version := "1.0"
scalaVersion := "2.11.8"
resolvers += "Spark Packages Repo" at "http://dl.bintray.com/spark-packages/maven"
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "2.2.0",
"org.apache.spark" %% "spark-sql" % "2.2.0",
"org.apache.spark" %% "spark-streaming" % "2.2.0",
"neo4j-contrib" % "neo4j-spark-connector" % "2.0.0-M2"
)
を。その後、私は私のspark
のサーバーにFTP経由で転送し、の操作を行います。
spark-submit --class "PSGApp" --master local[4] psg_ccd.jar
私はこのエラーを取得する:
だから、Exception in thread "main" java.lang.NoClassDefFoundError: org/neo4j/spark/Neo4j
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:739)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:119)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.ClassNotFoundException: org.neo4j.spark.Neo4j
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[truncated, 10 more messages]
私は、依存ファイルにneo4j-spark-connector
を持っているにもかかわらず、それはdoesnの私がspark
を通してそれを実行するとき、それを見つけるように見える。今このspark
はjar
をscala
から作成したのとは別のマシンで実行されています。これは問題ですか?コピーしてどこかにドロップする必要のあるlibsフォルダがありますか?
私はライブラリの情報を推測していますneo4j
spark
接続の依存関係は、実行しようとしているjar
に組み込まれていませんでした。
多分私はそれを強制するスイッチがありませんか?