2016-04-29 177 views
-2

我試圖運行由Apache的星火實例提供的樣品JavaStatefulNetworkWordCount算法,但我遇到一個問題,當我嘗試使用火花提交,我得到下面的異常運行程序:NoClassDefFound異常星火流

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/streaming/StateSpec 
    at JavaStatefulNetworkWordCount.main(JavaStatefulNetworkWordCount.java:109) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:674) 
    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:120) 
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 
Caused by: java.lang.ClassNotFoundException: org.apache.spark.streaming.StateSpec 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 

我導入了StateSpec類,代碼與此處提供的代碼相同:
https://github.com/apache/spark/blob/master/examples/src/main/java/org/apache/spark/examples/streaming/JavaStatefulNetworkWordCount.java

我希望能夠幫助您理解爲何出現此問題以及如何解決問題。

回答

0

您應該添加實際的提交命令。

我高度懷疑您在提交spark jar時是否缺少--class參數,或者您沒有在其中使用正確的合格類名稱。

0

我嘗試使用以下命令:

火花提交--class JavaStatefulNetworkWordCount --master本地[2]目標/ SparkStreaming.jar本地主機2222

+0

我懷疑在你的pom.xml錯誤。你能提供這個嗎?確保你在你的pom中定義了spark和spark-streaming作爲依賴。他們是不同的軟件包。 – OberstK