나는 sbt
를 사용하여 내 scala
코드에서 jar
를 구축했다 :sbt로 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"
)
가 나는 또한 단지 벌금 jar
를 구축 :
sudo sbt package
그것은 내 빌드 파일을 사용했다. 그럼, 내
spark
서버에 FTP를 통해 그것을 전송하고
spark-submit
수행
spark-submit --class "PSGApp" --master local[4] psg_ccd.jar
내가 얻을이 오류 : 나는 종속 파일에 neo4j-spark-connector
이 비록 그래서
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]
을, 그것은 '아무튼 spark
을 통해 실행하면 찾지 못하는 것 같습니다. 이제 spark
은 jar
을 scala
에서 작성한 것과 다른 시스템에서 실행됩니다. 이게 중요합니까? 거기에 내가 복사하고 어딘가에 드롭해야 libs의 폴더가 있습니까?
neo4j
spark
의 라이브러리 정보를 추측하고 있습니다. 실행을 시도하고있는 jar
에 연결 종속성이 내장되어 있지 않습니다.
아마도 강제로 스위치가 누락 되었습니까?