2017-06-20 16 views
0

我試圖解決方案在現有類似職位建議,但沒有爲我工作:-(變得非常絕望,所以我決定發佈這個作爲一個新的問題。試行Cloudera的星火教程將無法正常工作「的ClassNotFoundException」

我在一個Cloudera的VM構建第一階或Java應用程序與星火嘗試了教程(下面的鏈接)。

這是我的火花提交命令及其輸出

[[email protected] sparkwordcount]$ spark-submit --class com.cloudera.sparkwordcount.SparkWordCount --master local /home/cloudera/src/main/scala/com/cloudera/sparkwordcount/target/sparkwordcount-0.0.1-SNAPSHOT.jar 
java.lang.ClassNotFoundException: com.cloudera.sparkwordcount.SparkWordCount 
    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) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:270) 
    at org.apache.spark.util.Utils$.classForName(Utils.scala:176) 
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:689) 
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181) 
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206) 
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121) 
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 
[[email protected] sparkwordcount]$ spark-submit --class com.cloudera.sparkwordcount.SparkWordCount --master local /home/cloudera/src/main/scala/com/cloudera/sparkwordcount/target/sparkwordcount-0.0.1-SNAPSHOT.jar 

我也嘗試過更新POM .xml文件與我的實際CDH,Spark和Scala版本但仍然無法正常工作。

當我使用mvn包提取之前由maven生成的jar文件時,我無法在其文件夾分區中找到任何.class文件。

對不起,我是Cloudera和Spark的新手。我基本上試過以下教程與斯卡拉:https://blog.cloudera.com/blog/2014/04/how-to-run-a-simple-apache-spark-app-in-cdh-5/

我檢查了類,文件夾和scala文件名相當密切的幾個名字,特別是小/大寫問題,沒有什麼似乎錯了。

我打開我的jar,並且有一些文件層次結構,並且在最深的文件夾中我可以再次找到pom.xml文件,但是我看不到jar中任何位置的任何.class文件。這是否意味着通過「mvn package」進行的編譯實際上並不奏效,即使控制檯輸出中說「Building」成功了嗎?

+0

目標目錄會在側Cloudera的目錄。請嘗試 'spark-submit --class com.cloudera.sparkwordcount.SparkWordCount --master local/home/cloudera/target/sparkwordcount-0.0.1-SNAPSHOT.jar' –

+0

我試着將目標文件夾的內部jar移動到/ home/cloudera,並在嘗試按照您的建議繼續引發相同的異常 – ivanpc86

回答

0

我有同樣的問題。嘗試從

--class com.cloudera.sparkwordcount.SparkWordCount 

通過更改類名稱重新運行到

--class SparkWordCount 

完整的命令我使用看起來像:

spark-submit --class SparkWordCount --master local --deploy-mode client --executor-memory 1g --name wordcount --conf "spark.app.id=wordcount" target/sparkwordcount-0.0.1-SNAPSHOT.jar /user/cloudera/inputfile.txt 2