我使用onejar-maven-plugin
打包Apache Nutch应用程序。
从IDE运行时,应用程序运行正常。
onejar-maven-plugin
包很好,包括所有依赖的JAR,没有任何错误,但是当我尝试从命令行启动这个JAR时,我得到一个异常:
java.lang.RuntimeException:java.io.FileNotFoundException: \ my-jar-0.0.1-S NAPSHOT.one-jar.jar 在org.apache.hadoop.conf.Configuration.loadResource(Configuration.java: 1243) 在org.apache.hadoop.conf.Configuration.loadResources(Configuration.java :1107) 在org.apache.hadoop.conf.Configuration.getProps(Configuration.java:1053 ) 在org.apache.hadoop.conf.Configuration.set(Configuration.java:420) at org.apache.nutch.util.NutchConfiguration.setUUID(NutchConfiguration.j) AVA:41) 在org.apache.nutch.util.NutchConfiguration.create(NutchConfiguration.ja VA:73)
就这一行:
Properties p = new Properties();
conf = NutchConfiguration.create(false, p); // here exception
哪里有问题?
答案 0 :(得分:0)
Onejar用作Hadoop作业非常复杂。试试shade;它变成了一个丑陋的包,但很可能会起作用。
由于依赖性,将Nutch与您的应用程序打包相当复杂。在Hadoop中,有一种可能性是将/lib
置于.jar
内,但您肯定会遇到更多问题。