首先说一下安装nutch到步骤。
1.下载apache-nutch-1.6-src.tar.gz
2.解压到 nutch目录
3.修改nutch-site.xml、
<property>
<name>http.agent.name</name>
<value>nutch1.6</value>
</property>
<property>
<name>http.robots.agents</name>
<value>nutch1.6,*</value>
<description>The agent strings we'll look for in robots.txt files,
comma-separated, in decreasing order of precedence. You should
put the value of http.agent.name as the first agent name, and keep the
default * at the end of the list. E.g.: BlurflDev,Blurfl,*
</description>
</property>
<property>
<name>plugin.folders</name>
<!-- local模式下使用下面的配置
<value>./src/plugin</value> -->
<!-- 集群模式下,使用下面的配置 -->
<value>plugins</value>
</property>
4.到nutch目录 ant
5.新建eclipse java项目,指定到之前安装到nutch目录。
6.好里到这里nutch项目就导入好了,一般eclipse中hadoop环境好到话是可以单机执行了(nutch-site.xml 里面的plugin.folders 要改成 <value>./src/plugin</value> )
以上是单机执行到全部过程了,主要遇到问题是在分布式执行中。
分布式执行一般是到nutch目录(nutch-site.xml 里面的plugin.folders 要改成 <value>plugins</value>),重新ant编译(如果有修改到话)。然后执行命令
runtime/deploy/bin/nutch crawl hdfs://192.168.1.200:9000/user/hky/urls -solr http://192.168.1.200:8080/solr/ -dir crawl -depth 2 -topN 3
这里遇到到问题是,nutch第一次导入eclipse后 重新ant项目,执行后发现没有向solr插入数据。找了几天才发现,需要删除之前ant生成的/nutch/build/classes/org目录,然后再ant一次,问题就解决了。
原因:我发现导入到eclipse后/nutch/build/classes/org这个目录会自动更新,自己和eclipse的自动编译有关,估计时导入eclipse自动生成到class文件和ant生成到不太一样。。
本文详细介绍了Nutch的单机执行和分布式执行的完整流程,并指出了一个常见问题及其解决方案,即在分布式执行时,Nutch导入Eclipse后重新ant项目执行后未向solr插入数据的问题。解决办法是删除/nutch/build/classes/org目录并重新ant编译。

318

被折叠的 条评论
为什么被折叠?



