Java Spark submit找不到类(ClassNotFoundException)
我尝试使用脚本中的以下代码运行文件夹中的Main类:Java Spark submit找不到类(ClassNotFoundException),java,apache-spark,jar,Java,Apache Spark,Jar,我尝试使用脚本中的以下代码运行文件夹中的Main类: spark-shell --class com.navercorp.Main /target/node2vec-0.0.1-SNAPSHOT.jar --cmd node2vec ../graph/karate.edgelist --output ../walk/walk.txt 但这也带来了一个错误: 19/07/05 14:39:20 WARN util.NativeCodeLoader: Unable to load native
spark-shell --class com.navercorp.Main /target/node2vec-0.0.1-SNAPSHOT.jar --cmd node2vec ../graph/karate.edgelist --output ../walk/walk.txt
但这也带来了一个错误:
19/07/05 14:39:20 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
19/07/05 14:39:20 WARN deploy.SparkSubmit$$anon$2: Failed to load com.navercorp.Main.
java.lang.ClassNotFoundException: com.navercorp.Main
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.apache.spark.util.Utils$.classForName(Utils.scala:238)
at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:810)
at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:167)
at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:195)
at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:86)
at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:924)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:933)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
我的文件夹中有jar文件,结构如下:
另外,我附上jar文件的结构:
META-INF/MANIFEST.MF
log4j2.properties
com/
com/navercorp/
com/navercorp/Node2vec$.class
com/navercorp/Main$Params$$typecreator1$1.class
com/navercorp/Main$$anon$1$$anonfun$11.class
com/navercorp/Word2vec$.class
com/navercorp/Main$$anon$1$$anonfun$8.class
com/navercorp/Node2vec$$anonfun$randomWalk$1$$anonfun$8.class
com/navercorp/Node2vec$$anonfun$indexingGraph$4.class
com/navercorp/Node2vec$$anonfun$initTransitionProb$1.class
com/navercorp/Main$.class
com/navercorp/Node2vec$$anonfun$loadNode2Id$1.class
com/navercorp/Node2vec$$anonfun$14.class
com/navercorp/Node2vec$$anonfun$readIndexedGraph$2$$anonfun$1.class
有人能告诉我连接主类的建议吗?这只是一个猜测,但我认为当您打算使用相对路径时,您无意中为.jar文件使用了绝对路径 试一试
spark shell--class com.navercorp.Main target/node2vec-0.0.1-SNAPSHOT.jar--cmd node2vec../graph/karate.edgelist--output../walk/walk.txt
与spark shell--class com.navercorp.Main/target/node2vec-0.0.1-SNAPSHOT.jar--cmd node2vec../graph/karate.edgelist--output../walk/walk.txt不同,这只是一个猜测,但我认为当您打算使用相对路径时,您无意中使用了.jar文件的绝对路径 试一试
spark shell--class com.navercorp.Main target/node2vec-0.0.1-SNAPSHOT.jar--cmd node2vec../graph/karate.edgelist--output../walk/walk.txt
与spark shell--class com.navercorp.Main/target/node2vec-0.0.1-SNAPSHOT.jar--cmd node2vec../graph/karate.edgelist--output../walk/walk.txt不同,请查看下面的链接以查看参考信息:
请查看下面的链接以查看参考信息:
如果它引发相同的错误,请使用jar的完整路径,无论它在哪里。spark submit找不到您的jar,这是唯一的原因,如果它引发相同的错误,请使用jar的完整路径。spark submit找不到你的罐子,这是唯一的原因