0
我想在獨立模式下運行hadoop,並設置了所有正確的配置文件,併成功運行了wordCount示例。當我嘗試將我的源代碼和jar文件組織到一個文件層次結構中時,會出現問題,使事情變得更加有條理。Hadoop獨立模式,dirName.className,給出classNotFoundException
hadoop --config ~/myconfig jar ~/MYPROGRAMSRC/WordCount.jar MYPROGRAMSRC.WordCount ~/wordCountInput/allData ~/wordCountOutput
我使用上述代碼從我的主目錄中的腳本文件調用hadoop。它無法識別MYPROGRAMSRC目錄下一級的WordCount文件。
的〜/ MYPROGRAMSRC目錄包含:
WordCount.jar, WordCount.java, WordCount.class, WordCount$Map.class and WordCont$Reduce.class
文件。
購買爲什麼Hadoop的拋出一個ClassNotFoundException:
Exception in thread "main" java.lang.ClassNotFoundException: MYPROGRAMSRC.WordCount
我知道我的程序運行,因爲如果我的腳本文件轉移到同一目錄WordCount.class文件並運行以下命令:
hadoop --config ~/myconfig jar WordCount.jar WordCount ~/wordCountInput/allData ~/wordCountOutput
它運行良好。
這仍然不起作用。我也嘗試過。它堅持說腳本文件必須在同一個目錄下。 – anonuser0428
什麼是腳本文件? – vefthym
好吧,我剛剛寫了一個腳本文件,其他一些東西一起運行命令:hadoop --config〜/ myconfig jar WordCount.jar〜/ MYPROGRAMSCR/WordCount〜/ wordCountInput/allData〜/ wordCountOutput但不似乎工作。即使我在沒有腳本文件的情況下嘗試命令行,它仍然可以工作,只有當我在目錄〜/ MYPROGRAMSRC中,並且只需將WordCount作爲類文件傳遞即可。我只是好奇爲什麼會發生這種情況。 – anonuser0428