嗨,我正在hadoop中运行map reduce字数。我收到这个错误。
Exception in thread "main" java.lang.ClassNotFoundException: -files
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.hadoop.util.RunJar.main(RunJar.java:205)
但当我导出为可运行的罐子时,它是有效的。但当我尝试通过maven.时,它不起作用。请帮助解决此问题。
当您将jar导出为可运行的jar时,应用程序的主类在清单中定义。如果你从maven开始,你必须定义你的主类。您显示的异常意味着run方法需要一个类作为参数,而您定义了"-files"。因此,只需在"-files"之前添加mapreduce作业的主类的完全限定名,它就可以工作了。
编辑:有关示例,请参阅文档。该命令将类似于以下行。
hadoop jar myjar.jar com.mycompany.task.Main-文件。。。