Nutch的安装与配置

 
安装过程概览如下,我会在每个步骤下将可能出现的问题做自己的说明。

   [ 安装cygwin ]

   为什么需要安装cygwin 呢?因为nutch中网页“爬行”与索引的建立都使用unix的shell命令(请看nutch主目录下的bin目录),而大多数的朋友都是使用windows,所以我们需要在window上来模拟unix环境,cygwin正好完成了这个工作。它使得我们可以在windows平台上使用shell命令。

   什么是cygwin:http://baike.baidu.com/view/3968.html?wtp=tt

   安装完成后,点击cygwin主目录下的cygwin.bat可以自动完成必须的环境变量的配置,不用我们动手了。

   [安装nutch ]

   虽然说是安装nutch,实际上nutch并不需要什么安装,我们将它下来下来以后解压就可以了。

   然后在Windows系统的环境变量设置中,增加NUTCH_JAVA_HOME变量,并将其值设为JDK的安装目录。

   [对具体网站进行爬行和索引]

在这里我们需要对几个文件进行修改,以使得我们的程序能够对具体的网站进行爬行与建立索引。下面以对中山大学的站点进行处理为例。

    中山大学的主页为:http://www.sysu.edu.cn

   1.对conf/crawl-urlfilter.txt文件的修改。

     # accept hosts in MY.DOMAIN.NAME
       +^http://([a-z0-9]*/.)*MY.DOMAIN.NAME/

        改为:
  # accept hosts in MY.DOMAIN.NAME
  +^http://www.sysu.edu.cn

      说明:+^http://([a-z0-9]*/.)*MY.DOMAIN.NAME/这是一个用正则表达式,匹配允许爬行的网页。上面我们将其设定为唯一的具体网页了。实际上,改成+^http://([a-z0-9]*/.)*就能匹配所有的网页了。
   2.在nutch主目录下(其它位置也可以,不过在运行命令时候需要指定到具体的位置)url.txt。这是指在nutch0.9下面,如果是在nutch0.8下面,需要建立一个urls的文件夹,然后在下面家里url.txt文件。

    在url.txt中输入你要爬行和建立索引的网址。

    3.虽然很少有文章提到,但是实际上许多网页对爬虫进行了一定的限制,只有遵循一定协议的爬虫才能进行爬行,因此需要配置爬行的协议。所以需要对config/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>http.agent.name</name>
<value>www.sysu.edu.cn</value>
<description>My Search Engine</description>
</property>

</configuration>

    注意其中的红色部分,虽然网上资料都说可以不用修改,但是如果出现意味,不妨这里找原因。

   [如何进行索引建立]

    在完成以上过程以后就可以建立索引了,点击左面上的cygwin的图标,进入命令输入界面(有点像DOS),

   输入:cd /cygdrive/d/nutch-0.9

   说明:d表示d盘。

   输入:bin/nutch crawl url.txt -dir crawled -depth 3 -threads 4 >& crawl.log

   说明:url.txt为你上面建立的url 文件,如果是nutch0.8那,应该是urls.

               crawled为你的索引目录。

              3代表爬行深度。

               4代表线程数。

               crawl.log是日志文件。

   待执行结束后,我们查看日志文件,最后一行出现finished: crawl字样代表索引建立成功。接下来就可以进行查询了。

   [如何进行搜索]

    将nutch目录下的.war文件拷贝到tomcat目录下(如果你还没有安装tomcat请先安装),然后改名为nutch.war。

     打开ROOT/WEB-INF/classes下的nutch-site.xml文件,修改成如下形式:
   
  <?xml version="1.0"?>
  <?xml-stylesheet type="text/xsl" href="nutch-conf.xsl"?>

  <!-- Put site-specific property overrides in this file. -->

  <nutch-conf>
   <property>
    <name>searcher.dir</name>
    <value>I:/nutch-0.7.1/crawled</value>
   </property>
  </nutch-conf>
  
 其中的“<value>I:/nutch-0.7.1/crawled</value>”部分,应根据自己的设置进行相应修改。

如果出现异常:java.io.UTFDataFormatException: Invalid byte 1 of 1-byte UTF-8 sequence则是由于在nutch-site.xml文件中出现了中文输入法的标记。


      在浏览器中输入http://localhost:8080/nutch即可进入查询主页面进行查询了。

   [查询页面乱码问题]

   这是tomcat的问题,对Tomcat 的 server.xml 文件(在conf文件夹下)的 connnector:

<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" useBodyEncodingForURI="true" />

   其中 URIEncoding="UTF-8" useBodyEncodingForURI="true" 是需要新增的。

[程序修改后的重组问题]

nutch能方便地根据自己的需要进行修改,例如我们要根据添加自己的分词工具,则修改相关的java文件即可,例如,我们要修添加JE分词,只需修改/src/java/org/apache/nutch/analysis下的NutchDocumentAnalyzer.java文件后重新编译即可。

    那么如何重新组装呢?大家注意在nutch主目录下有一个build.xml文件,它就是重组时候所用的,不过光有它还不行,因为运行他还需要一个工具。那就是ant。

   下载地址:http://ant.apache.org/

   然后将下载的文件解压后设置环境变量,例如我的解压地址为E:/apache-ant/apache-ant-1.7.1。我就设置ANT_HOME为E:/apache-ant/apache-ant-1.7.1。并在path变量的后面添加%ANT_HOME%/bin。进入到命令行输入ant如果不提示无法识别命令,那么ant安装配置成功了。

    从命令行进入到build.xml所在的目录,输入ant命令。即可开始重新编译,如果没有提示错误,那说明你的源码修改是正确的,将在改目录下产生一个build文件目录,进入该文件目录将nutch-0.9.job文件拷贝,返回上级目录粘贴,替换掉原来的nutch-0.9.job文件即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值