我正试图在我的(java)mojarra 2.0.2 webapp中使用没有bin / nutch的nutch(1.1)...我在google搜索示例,但是没有例子我怎么能意识到这一点:/。 ..我得到一个例外而且工作失败了:/(我认为原因是hadoop)......这是我的代码:
public void run() throws Exception { final String[] args = new String[] { String.format("%s%s%s%s", JSFUtils.getWebAppRoot(), "nutch", File.separator, DIRECTORY_URLS), "-dir", String.format("%s%s%s%s", JSFUtils.getWebAppRoot(), "nutch", File.separator, DIRECTORY_CRAWL), "-threads", this.preferences.get("threads"), "-depth", this.preferences.get("depth"), "-topN", this.preferences.get("topN"), "-solr", this.preferences.get("solr") }; Crawl.main(args); }
和日志记录的一部分:
10/05/17 10:42:54 INFO jvm.JvmMetrics: Initializing JVM Metrics with processName=JobTracker, sessionId= 10/05/17 10:42:54 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same. 10/05/17 10:42:54 INFO mapred.FileInputFormat: Total input paths to process : 1 10/05/17 10:42:54 INFO mapred.JobClient: Running job: job_local_0001 10/05/17 10:42:54 INFO mapred.FileInputFormat: Total input paths to process : 1 10/05/17 10:42:55 INFO mapred.MapTask: numReduceTasks: 1 10/05/17 10:42:55 INFO mapred.MapTask: io.sort.mb = 100 java.io.IOException: Job failed! at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1232) at org.apache.nutch.crawl.Injector.inject(Injector.java:211) at org.apache.nutch.crawl.Crawl.main(Crawl.java:124) at lan.localhost.process.NutchCrawling.run(NutchCrawling.java:108) at lan.localhost.main.Index.indexing(Index.java:71) at lan.localhost.bean.FeedingBean.actionStart(FeedingBean.java:25) ....
有人可以帮助我或告诉我如何从Java应用程序中爬行吗?我已将Xms增加到256m,将Xmx增加到768m,但没有任何改变......
最好的问候marcel
答案 0 :(得分:1)
您可能必须将nutch配置文件添加到类路径中。通常,在调用脚本bin / nutch时,它是通过 NUTCH_CONF_DIR 环境变量设置的。
还可能需要设置 -Dhadoop.log.dir 。
花点时间检查bin / nutch脚本以了解更多相关信息。
答案 1 :(得分:0)
您可以分叉一个新进程并运行bin / nutch脚本。
答案 2 :(得分:0)
由于某些原因无法使用提供的sysout诊断注入作业失败。需要更多日志。