有些图片不好上传,如果大家想看可以发邮件给我,我把word文件可以发给大家。另外需要说明的是,这个安装对于检索实现了分布式,对抓取不是分布式的,以后我做了分布式抓取再贴出来大家一起学习。
编写这个文档的过程中得到了若冰的大力支持和帮助!鸣谢!~
Nutch-1.0分布式安装手册
1 、安装准备
1.1 从http://lucene.apache.org/nutch/ 下载nutch-1.0.tar.gz
1.2 准备2台机器,IP分别是10.0.14.25、10.0.14.19
1.3 从http://Tomcat.apache.org/ 下载Tomcat 6.0.24
1.4 下载jdk-6u17-linux-i586-rpm.bin(nutch-1.0采用的是JDK-1.6来编译的)
2 、环境描述
2.1 操作系统为Linux 2.6.9-78.8AXS2(红旗操作系统)
2.2 10.0.14.25为主服务器,10.0.14.19为次服务器(2台机器均可访问外网)
2.3 经过我测试发现,如果不是用JDK1.6,nutch-1.0无法启动。
3 、安装软件
3.1 首先在14.25这个机器上安装相关软件。
3.1.1 在主服务器上安装Nutch-1.0
Ø 将nutch-1.0.tar.gz拷贝到/root目录下,如图:
图 1
Ø 控制台输入命令将nutch 安装在/run/nutch目录下,如图
[root@localhost /]# tar -zxf /root/apache-tomcat-6.0.24.tar.gz -C /run/ |
3.1.2 在主服务器上安装Tomcat 6.0.24
Ø 将apache-tomcat-6.0.24.tar.gz拷贝到/root目录下,控制台输入
[root@localhost /]# tar –zxf /root/apache-tomcat-6.0.24.tar.gz -C /run/ |
Ø 安装完效果如图1和图2所示。
3.1.3 在主服务器上安装JDK1.6
Ø 将jdk-6u17-linux-i586-rpm.bin拷贝到/root目录下,控制台输入
[root@localhost /]# chmod +x /root/jdk-6u17-linux-i586-rpm.bin [root@localhost /]# ./root/jdk-6u17-linux-i586-rpm.bin |
然后直接按space键,直到控制台提示后输入yes即可。
Ø 安装完后输入reboot重启机器。查看结果:
[root@localhost bin]# java -version java version "1.6.0_17" Java(TM) SE Runtime Environment (build 1.6.0_17-b04) Java HotSpot(TM) Client VM (build 14.3-b01, mixed mode, sharing) [root@localhost bin]# |
3.2 在次服务器10.0.14.19上安装软件
次服务器上需要安装nutch-1.0和JDK1.6安装流程同在主服务器上安装流程相同。次服务器上无需安装Tomcat
4 、索引建立
4.1 在/run/nutch-1.0/下创建目录/run/nutch-1.0/urls/,在该目录下创建文件sanxia.txt,并在文件中输入 http://www.sanxia.net.cn,如图:
[root@localhost /]# cd /run/nutch-1.0/urls/ [root@localhost urls]# cat sanxia.txt http://www.sanxia.net.cn [root@localhost urls]# |
4.2 编辑conf/crawl-urlfilter.txt,替换“MY.DOMAIN.NAME”为“sanxia.net.cn”,如下所示:
+^http://([a-z0-9]*/.)*sanxia.net.cn/ |
4.3 修改/conf/nutch-site.xml,如下所示:
<configuration> <property> <name>http.agent.name</name> <value>my nutch agent</value> </property> <property> <name>http.agent.version</name> <value>1.0</value> </property> <property> <name>searcher.dir</name> <value>/run/sanxia</value> </property> </configuration> |
4.4 在/run/nucth-1.0/bin目录下执行命令进行抓取工作
[root@localhost conf]#./nutch crawl /run/nutch-1.0/urls/sanxia.txt -dir /run/sanxia -depth 2 -threads 4 |
参数说明:
参数 | 值 | 说明 |
crawl | /run/nutch-1.0/urls/sanxia.txt | 指向刚才生成的txt文件 |
-dir | /run/crawled | 索引输出目录 |
-depth | 2 | 抓取几层网页 |
-threads | 4 | 采用几个线程 |
等待控制台输出结束,表示抓取完成。在/run/下产生sanxia文件夹。
至此,http://www.sanxia.net这个网站的索引在主服务器上建立完成。同样的流程在次服务器上建立http://www.17173.com这个网站的索引。完成之后,在次服务器上/run/目录下会生成17173文件夹。该文件夹就是万丈17173网站的索引文件。
5 、配置分步式式检索
5.1 建立Tomcat指向的索引目录
5.1.1 在/run/创建search-dir目录,并在目录下创建文件search-servers.txt文件,文件内容编辑为:
10.0.14.19 9999 10.0.14.25 9999 |
5.2 配置Tomcat
5.2.1 将/run/nutch-1.0/nutch-1.0.war拷贝到Tomcat目录下,命令如下
[root@localhost conf]# cp nutch-1.0.jar /run/apache-tomcat-6.0.24/webapps |
然后启动Tomcat,在浏览器输入http://10.0.14.25:8080/nutch-1.0/然后war包自动解开。
5.2.2 修改Tomcat指向索引目录控制台输入
[root@localhost conf]# vi /run/apache-tomcat-6.0.24/webapps/nutch-1.0/WEB-INF/classes/nutch-site.xml |
文件修改内容如下:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>searcher.dir</name> <value>/run/search-dir</value> </property> </configuration> |
5.2.3 Tomcat乱码解决,修改C:/Tomcat6/conf/server.xml
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" useBodyEncodingForURI="true" protocol="HTTP/1.1" /> |
5.3 配置次服务器上的nutch(主服务器上的nutch不用再配置了)
5.3.1 修改配置文件/run/nutch-1.0/conf/nutch-site.xml修改内容如下
[root@localhost ~]# cat /run/search-server/conf/nutch-site.xml <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>plugin.folders</name> <value>/run/nutch-1.0/plugins</value> <description>Directories where nutch plugins are located. </description> </property> <property> <name>searcher.dir</name> <value>/run/17173</value> <description> Path to root of crawl. </description> </property> </configuration> |
6 、启动服务进行检索
6.1 启动主服务器上Tomcat(如果刚才启动过,那么先关闭,然后再启动)
Ø 启动命令:
[root@localhost conf]# sh /run/apache-tomcat-6.0.24/bin/startup.sh |
Ø 停止命令:
[root@localhost conf]# sh /run/apache-tomcat-6.0.24/bin/shutdown.sh |
6.2 启动主、次服务器的nutch服务
Ø 启动主服务器服务,进入/run/nutch-1.0/bin目录,执行
[root@localhost conf]# ./nutch server 9999 /run/sanxia/ |
Ø 启动次服务器服务,进入/run/nutch-1.0/bin目录,执行
[root@localhost conf]# ./nutch server 9999 /run/17173/ |
7 、进行查询验证
7.1 在本机输入IE输入URL:http://10.0.14.25:8080/nutch-1.0/zh/进行查询(我本机IP为10.0.14.214),如下图:
7.2 输入“魔兽世界”进行查询(sanxia.net.cn网站无游戏内容,可证明查询结果出自主服务器索引),结果如下:
7.3 输入“宜昌”进行查询,可查到三峡相关内容(我家三峡,所以查宜昌。同理,17173.com上无此内容,可验证,该结果索引内容来自次服务器),结果如下图:
7.4 查询的同时也可使用tail –f /run/apache-tomcat-6.0.24/logs/catalina.out查看实时日志输出。
8 、总结:
8.1 需要注意的是,编辑一些配置文件的时候最好使用vi命令进行编辑,避免出现编码格式不对,导致nutch无法启动。
8.2 该文档的编写借鉴了若冰写的《nutch-1.0 的分布式查询部署》,地址如下http://bbs.hadoopor.com/viewthread.php?tid=278
8.3 一些细节问题有不明白的可以发邮件给我dajuezhao@gmail.com