#Crawl.run()期间的IOException - > #JobClient.runJob()

时间:2013-03-31 16:12:29

标签: eclipse apache hadoop nutch

我和Nutch很新,所以请耐心等待。在我的一次测试爬网期间,我遇到了IOException。我正在使用 nutch 1.6 with hadoop 0.20.2 (在设置文件访问权限时选择此版本用于windows兼容)。

我正在通过日食运行nutch。我从SVN导入nutch时遵循了本指南:http://wiki.apache.org/nutch/RunNutchInEclipse

我的抓取工具代码来自此网站:http://cmusphinx.sourceforge.net/2012/06/building-a-java-application-with-apache-nutch-and-solr/

以下是系统例外日志:

未设置solrUrl,将跳过索引...
抓取开始于:抓取
rootUrlDir = urls
线程= 1
depth = 1
solrUrl = null
topN = 1
喷油器:2013-03-31 23:51:11开始 Injector:crawlDb:crawl / crawldb
注射器:urlDir:urls
注入器:将注入的URL转换为爬网数据库条目。

java.io.IOException: Job failed! 
    at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1252) 
    at org.apache.nutch.crawl.Injector.inject(Injector.java:
    at org.apache.nutch.crawl.Crawl.run(Crawl.java:
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:
    at rjpb.sp.crawler.CrawlerTest.main(CrawlerTest.java:51)

我在Crawl.java中的#Injector.inject()之前看到这些涉及路径的调用

Path crawlDb = new Path(dir + "/crawldb"); 
Path linkDb = new Path(dir + "/linkdb"); 
Path segments = new Path(dir + "/segments"); 
Path indexes = new Path(dir + "/indexes"); 
Path index = new Path(dir + "/index");

目前我的eclipse项目不包含文件夹crawldb,linkdb,segments ...我认为我的问题是我没有为抓取设置所有必需的文件。我只设置了 nutch-site.xml,regex-urlfilter.txt和urls / seed.txt 。对此事的任何建议都会有很大的帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

当我尝试在Windows上运行nutch 1.6时,我没有取得多大成功。 我下载了已知在Windows中运行的最新版本(nutch 1.2)并且没有任何问题。

话虽如此,你能分享你的logs / hadoop.log文件的输出吗? 这可能会对出现问题的方式提供更多暗示。