Nutch1.2源码导入到Ubuntu10.10的Eclipse中

Nutch1.2源码导入到Eclipse中有两种方法,一种是通过已有工程创建,一种是手动复制。相比通过已有工程创建,手动复制工程目录结构更加合理清晰。本文针对两种方法均予以介绍。

一、准备

本文使用如下版本的tomcat、nutch和eclipse:

apache-tomcat-7.0.27.tar.gz,下载地址:http://tomcat.apache.org/

apache-nutch-1.2-bin.zip,下载地址:http://apache.etoak.com//nutch/apache-nutch-1.2-bin.zip

eclipse-SDK-3.7.2-linux-gtk.tar.gz,下载地址:http://www.eclipse.org/downloads/

二、步骤

1. eclipse安装

进入包目录,运用命令:tar xzvf eclipse-SDK-3.7.2-linux-gtk.tar.gz解压就行,然后在桌面创建一个启动器,也即相当于Windows下的快捷方式,指向安装目录下的eclipse

2. nutch安装

2.1 手动复制方式

1)首先下载nutch包apache-nutch-1.2-bin.zip,本文写作时nutch的最新版本为1.4,但我采用的是1.2版的。(注意:笔者在下载时发现该版本的src包有问题,换成bin包后正常,这个问题困扰了我很久,因为在源码src包下压根就没有plugins文件),然后解压,解压后的目录名为nutch-1.2,然后将其移动到目录/usr下。

命令如下:

unzip apache-nutch-1.2-bin.zip

mv nutch-1.2 /usr

2)在eclipse中新建一个Java Project项目,名字自己定义(nutch),选择"Create New project in WorkSpace",点击完成。

3)将解压后的nutch目录下的/src/java/中的代码(注:不是复制Java文件夹,而是该文件夹中的所有文件)全部复制到新建工程中的src下,再将解压后的nutch目录下的lib、plugins、conf三个文件夹复制到新建工程的根目录下(与src同级)。

4)右键工程properties,切换到"Libraries"选择"Add Class Folder..." 按钮,从列表中选择"conf",将 conf加入到classpath中。

5) 右键工程properties,切换到“Libraries”选择“Add External JARs “ 按钮,将lib文件夹中的所有jar(注:记住要将所有jar包都加入到工程中)加入到工程中。

6) 修改配置文件

(1)conf/nutch-site.xml

修改conf下的nutch-site.xml,在configuration标签对中添加如下代码:

<property>

    <name>http.agent.name</name>

    <value>Your Agent Name Here</value>

</property>

(2)conf/nutch-default.xml

<property>

         <name>plugin.folders</name>

           <value>./plugins</value><!—小心这里的路径设置,如果这里设置的不对,会报错:Job Failure,这也是一个常见的错误-->

(3) conf/crawl-urlfilter.txt

在crawl-urlfilter.txt中找到MY.DOMAIN.NAME,将其改为想抓取的网站的正则表达式

#accept hosts in MY.DOMAIN.NAME

+^http://([a-z0-9]*/.)*qq.com/      ---试图抓取qq网站的内容

(4)在工程的根目录下新建weburls.txt,写入想抓取的网站URL,如:http://www.qq.com/

7)执行nutch的crawl命令。

配置java项目的运行参数:

Program arguments:bin/nutch weburls.txt -dir crawl -depth 2 -topN 50  或 bin/nutch crawl urls -dir crawl -depth 2 -topN 50 (其中urls为目录,其下有一个url.txt的种子文件)

VM arguments:-Dhadoop.log.dir=log -Dhadoop.log.file=hadoop.log -Xms64m -Xmx512m

点Run运行之后若无错误,便会输出如下提示信息:

至此nutch导入eclipse中运行成功。

2.2 通过已有工程创建

1)步骤同上

2)File-->new-->java project,名字自己随便起只要不和以前的重复即可,例如nutch然后,将

上面的钩子去掉然后从Browse中找到自己的源码(注:此处的源码目录不能放在workspace目录下,否则会出现同名错误,因为eclipse会先在workspace下创建一个同名的工程),然后点击下一步

3)切换到Libraries然后点击“Add Class Folder”将conf勾选上,然后切换到Order and Export,接着选中Nutch/conf然后点击Top将其移动到最顶端,然后点击完成

4)切换到Libraries选择“Add External JARs ”按钮,将lib文件夹中的所有jar(注:记住要将所有jar包都加入到工程中)加入到工程中

5)修改配置文件

(1)修改conf/nutch-site.xml,在<configuration>里添加

         <property>
            <name>http.agent.name</name>
            <value>You Nutch Name</value>
        </property>

(2)些处不用修改conf/nutch-default文件下plugin.folders的值(即保持plugins不变)

(3) 在crawl-urlfilter.txt中找到MY.DOMAIN.NAME,将其改为想抓取的网站的正则表达式

    #accept hosts in MY.DOMAIN.NAME

   +^http://([a-z0-9]*/.)*qq.com/      ---试图抓取qq网站的内容

(4)在工程的根目录下新建weburls.txt,写入想抓取的网站URL,如:http://www.qq.com/

6)执行nutch的crawl命令。

3. 将nutch部署在tomcat中

其实做完上面的步骤,nutch的配置可以说就算完成了,因为我们已经可以用命令行来搜索了,但是为了更方便的展现,下面将nutch部署在Tomcat上,然后像访问Google那样访问其搜索页面。

这一步实际上非常简单,只要将apache-nutch-1.2-bin.zip解压后的nutch-1.2目录下的nutch-1.2.war包复制到tomcatwebapps下就行了。

步骤:

(1)解压apache-tomcat-7.0.27.tar.gz包到指定目录,解压后的目录名为apache-tomcat-7.0.27,然后移动到/usr目录下,并重命名为tomcat7.0

命令如下:

tar xzvf apache-tomcat-7.0.27.tar.gz

mv apache-tomcat-7.0.27 /usr

cd /usr

mv apache-tomcat-7.0.27 tomcat7.0

(2)将nutch-1.2目录(本文目录为/usr/nutch-1.2)下的nutch-1.2.war复制到tomcat目录下的webapps/下(本文为/usr/tomcat7.0/webapps/),tomcat在运行状态下会自动解压缩这个包(如果tomcat没有自动解压缩这个包可以用命令/usr/tomcat7.0/bin/startup.sh重启tomcat,然后就会自动解压缩该包)为nutch-1.2,打开解压缩后的文件nutch-1.2,在文件/nutch-1.2/WEB-INF/classes/nutch-site.xml(本文目录是/usr/tomcat7.0/webapps/nutch-1.2/WEB-INF/classes/nutch-site.xml)中加入:

<property>

    <name>searcher.dir</name>

    <value>/home/abiao/workspace/nutch/crawl</value>

</property>

其中爬取结果存放的路径应该是nutch项目文件夹中的crawl文件夹(本文为/home/abiao/workspace/nutch/crawl,这样就能保证搜索的结果是从我们刚才爬取的结果中得到的。

这时候搜索,可以在tomcat的命令行中看到乱码,我们还要配置下tomcatconf/server.xml文件(本文目录为/usr/tomcat7.0/conf/server.xml),将其中的Connector元素改为如下形式:

 <Connector port="8080″ protocol="HTTP/1.1″

               connectionTimeout="20000″

               redirectPort="8443″

              URIEncoding="UTF-8″

             useBodyEncodingForURI="true"/>

修改完后,重启下tomcat(命令为:/usr/tomcat7.0/bin/startup.sh),然后打开浏览器访问http://localhost:8080/nutch-1.2就可以得到正确结果了。

    

至此,配置完成。

4. 修改采集站点

(1) 修改weburls.txt文件内容(笔者改为:http://www.scut.edu.cn/)和crawl-urlfilter.txt内容(笔者改为:+^http://([a-z0-9]*/.)*scut.edu.cn/)

(2) 运行eclipse重新编译工程

(3) 重启ubuntu(因为我发现我重启tomcat不行,重启ubuntu才行),命令为:reboot

(4) 进入终端,启动tomcat,

命令为:su root

                root

                /usr/tomcat7.0/bin/startup.sh

(5) 打开浏览器访问http://localhost:8080/nutch-1.2就可以得到修改后的正确结果了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值