嗨我在hadoop中运行地图减少字数。我收到此错误。
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)
但是当我导出为runnable jar时它正在工作。但是当我尝试通过maven.it不能正常工作时。请帮助解决问题。
答案 0 :(得分:0)
当您将jar导出为runnable jar时,应用程序的主类在清单中定义。如果你从maven启动它,你必须定义你的主类。您显示的异常意味着 run 方法需要一个类作为参数,而您定义了“-files”。因此,只需在“-files”之前添加mapreduce作业主类的完全限定名称,它就可以正常工作。
编辑:有关示例,请参阅documentation。该命令将如下所示。
hadoop jar myjar.jar com.mycompany.task.Main -files ...