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