从昨天下午到今天上午,共花了一天的时间,终于把偶的Nutch运行成功了。
记录下这个过程。
1.从官网上分别下载jdk1.6.0,apache-tomcat-6.0.24,nutch1.0.
2.安装jdk1.6.0包,直接运行即可。
3.解压缩tomcat,用tar -xvf apache-tomcat-6.0.24.tar.gz
4.解压缩nutch,同3.
5.添加环境变量
其中jdk我下的是bin包,运行后只是解压缩而已,
所以需要在/etc/profile中添加环境变量
我的是这样的:
export JAVA_HOME=/usr/dev/jdk1.6.0
export JAVA_BIN=/usr/dev/jdk1.6.0/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export TOMCAT_HOME=/usr/dev/apache-tomcat-6.0.24
export JAVA_HOME JAVA_BIN PATH CLASSPATH TOMCAT_HOME
6.logoff 系统,重新登录,环境变量就生效了。
7.配置nutch.
1)cd到nutch根目录,vi url.txt,在url.txt输入要crawl的网址,比如我用的是http://blog.csdn.net/zjzcl
2)cd conf,vi nutch-site.xml, 修改如下:
<configuration>
<property>
<name>http.agent.name</name>
<value>HD nutch agent</value>
</property>
<property>
<name>http.agent.version</name>
<value>1.0</value>
</property>
</configuration>
保存。
3)vi crawl-urlfilter.txt找到# accept hosts in MY.DOMAIN.NAME这一行,将下面的那行改成+^http://blog.csdn.net/zjzcl,保存。
8.设置好了,爬取。在nutch根目录下,输入命令:sh bin/nutch crawl url.txt -dir crawled -depth 4 -threads 5 >&crawl.log
注意:crawled文件夹不能存在。
crawl.log是记录crawl日志的文件,如果搜索不成功,有可能是爬取的问题,可以从这里找到问题所在。我第一次搜索就没有成功,是爬取的问题。
9.在tomcat里测试。
1)用vi命令将$TOMCAT_HOME/conf/server.xml的connector修改为:
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false"
protocol="HTTP/1.1"
redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true"
URIEncoding="UTF-8" useBodyEncodingForURI="true" />
保存。
2)将webapps下的ROOT改为ROOT1.
3)用cp命令将nutch根目录下的war包复制到$TOMCAT_HOME/webapps下并将其改名为ROOT.war
此时启动tomcat,sh $TOMCAT_HOME/bin/startup.sh.用浏览器访问http://localhost:8080.
ROOT.war已经解开了。
4)cd到ROOT下的WEB-INF/classes,ls可以看到有nutch-site.xml,用vi命令修改如下:
<configuration>
<property>
<name>searcher.dir</name>
<value>/usr/dev/nutch-1.0/crawled</value>
</property>
</configuration>
指定要搜索的目录。
5)重启tomcat,用http://localhost:8080访问,即可进行搜索。
以上是我参考了网上一些资料,自己实践的一个过程。一方面是为了跟大家分享,另一方面也是为了做个备忘录。欢迎大家批评指正。