我对 nutch 很陌生,所以请多多包涵。在我的一次测试爬网期间,我遇到了 IOException。我正在使用带有 hadoop 0.20.2 的 nutch 1.6(在设置文件访问权限时为 Windows 兼容性选择此版本)。
我正在通过 Eclipse 运行 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
threads = 1
depth = 1
solrUrl=null
topN = 1
Injector:从 2013-03-31 23:51:11 开始
Injector: crawlDb: crawl/crawldb
Injector: urlDir: urls
Injector: 将注入的 url 转换为爬取 db 条目。
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。关于此事的任何建议都会有很大帮助。谢谢!