在 Eclipse3.3 下运行 Nutch 0.9(解决Generator: 0 问题)
Platform: Ubuntu 7.04, JDK 1.6.3, Nutch 0.9, Eclipse 3.3
?
1、Nutch 0.9 with Eclipse 3.3 in Ubuntu
???? 参看Nutch的官方文档,里面说得很详细了,这里不在赘述。
2、导入hadoop的源代码和,可方便在Eclipse中调试代码和查看API文档。具体方法如下:
???? Project properties--> Java Build Path-->Libraries-->hadoop-0.12.2-core.jar,点击前面三角符号,展开编辑 Source attachment , 选择hadoop相应版本的src。
?
3、配置Native-hadoop Library,可以提高运行效率,但是调试环境下关系不大,不配置也可。
??? ? Project properties--> Java Build Path-->Libraries-->hadoop-0.12.2-core.jar,点击前面三角符号,展开 编辑 Native library location,加入nutch-0.9/lib/native/Linux-i386-32 即可。
?
4、解决 “Generator: 0 records selected for fetching, exiting ...”问题
??? 经过上面的配置,已经可以在Eclipse环境中启动Nutch了,但是程序却不能正常运行,而出现一个"Generator: 0 records selected for fetching, exiting ..."报告,程序终止。
?? 经过调试,发现运行到 Generator.java:424 :
if (readers == null || readers.length == 0 || !readers[0].next( new FloatWritable())) { LOG.warn("Generator: 0 records selected for fetching, exiting ...");
?? 由于 readers[0].next( new FloatWritable())为false而导致该错误的出现。网上相关文章提出适用NUTCH-503解决该问题,但是该补丁针对的是分布式部署时出现的问题,在这里并不适用,而且经测试也不能解决问题。
解决方法:
???? 将tmp_build,也就是项目的默认输出目录(default output folder)下的 nutch-site.xml 文件删掉 或者将该文件中下列属性注释掉。
<property>
? <name>plugin.includes</name>
? <value>.*</value>
? <description>Enable all plugins during unit testing.</description>
</property>
====================================
? 由于接触Nutch时间不长,问题的前因后果并不明了,希望知道的sdjm可以告知。