我在Ubuntu上使用spark-submit在Spark上執行java檔案。該命令在下面給出。這個JAR文件是使用Maven Package構建的。依賴關係在pom.xml文件中指定。java.lang.ClassNotFoundException:com.github.lwhite1.tablesaw.api.Table運行時使用Eclipse提交的錯誤
]$ spark-submit --class HighScore.Driver --master local[*] JarfilePath/Levelwise_PCFS-0.0.1-SNAPSHOT.jar InputFilePath/K9_Site1.csv 1000.
即使在命令中指定了packageName.className(HighScore.Driver),我也會收到跟隨錯誤。
這是錯誤消息。
Exception in thread "main" java.lang.NoClassDefFoundError: com/github/lwhite1/tablesaw/api/Table
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:727)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:187)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:212)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:126)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.ClassNotFoundException: com.github.lwhite1.tablesaw.api.Table
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 10 more
com/github/lwhite1/tablesaw/api /表依賴關係也在pom.xml文件中指定。但它仍然會拋出異常。
有人能幫助我糾正這個錯誤。
.class文件存在於/home/workspace/project/target/classes/HighScore/Driver.class中。 classpath文件有。我希望classpath設置正確。我無法弄清楚它出錯的地方。 –
我有兩個HighScore包下的類。一個是具有主類的HighScore.Driver,另一個是從Driver類調用的HighScore.AttributeSelector。我需要在上面的spark-submit命令中指定這兩個類爲:$ spark-submit --class HighScore.Driver,HighScore.AttributeSelector --master local [*] /home/hadoopuser/workspace/Levelwise_PCFS/target/Levelwise_PCFS-0.0 .1-SNAPSHOT.jar InputFilePath/K9_Site1.csv 1000.試過了。這仍然說ClassNotFoundException。 –