Cygwin,Nutch安装配置,检验是否正确(对网友守望者博客的修改---在此感谢守望者)2-阿里云开发者社区

开发者社区> 开发与运维> 正文

Cygwin,Nutch安装配置,检验是否正确(对网友守望者博客的修改---在此感谢守望者)2

简介: 前言:作者(守望者MS)在实际搭建并开发Nutch的过程中参阅很多中文资料,但内容并不详尽且有错误,于是在此记录个人实战过程,纠正一些文章错误,以详细的过程展现一次简单的二次开发流程,为初学者降低门槛。但不能保证完全没有错误,如有发现希望大家指正。 目录: Cygwin,Nutch安装配置,检验是否正确(对网友守望者博客的修改---在此感谢守望者)1 Cygwin,Nutch安装配置

前言:作者(守望者MS)在实际搭建并开发Nutch的过程中参阅很多中文资料,但内容并不详尽且有错误,于是在此记录个人实战过程,纠正一些文章错误,以详细的过程展现一次简单的二次开发流程,为初学者降低门槛。但不能保证完全没有错误,如有发现希望大家指正。

目录:

Cygwin,Nutch安装配置,检验是否正确(对网友守望者博客的修改---在此感谢守望者)1

Cygwin,Nutch安装配置,检验是否正确(对网友守望者博客的修改---在此感谢守望者)2

Cygwin,Nutch安装配置,检验是否正确(对网友守望者博客的修改---在此感谢守望者)3

Cygwin,Nutch安装配置,检验是否正确(对网友守望者博客的修改---在此感谢守望者)4



一、开发环境介绍(以我个人为例):

个人开发端:windows Server 2003 + Cygwin + Eclipse3.2

二、具体步骤:

<1>.下载nutch1.2(http://labs.renren.com/apache-mirror//nutch/)

下载完成后解压到指定的文件夹。

在开始测试Nutch是否搭建成功之前,请先确保本机安装了JDK,并且设置了正确的JAVA_HOME环境变量,注意:环境变量的设置中一定要将JDK的安装根目录设置为JAVA_HOME,然后再设置CLASSPATH,PATH,即:%JAVA_HOME%/bin,%JAVA_HOME%/lib,千万不要设置为绝对目录,否则在执行Nutch命令时会出现错误

点击查看详情

<2>.开始配置Nutch:

第一:修改nutch目录下的conf子目录下的两个文件:

在nutch-site.xml的configuration下增加一个http.agent.name节点(如不修改则不能抓取)

     <configuration>

            <property>

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

             <value>HD nutch agent</value>

             </property>

              <property>

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

              <value>1.2</value>

               </property>

      </configuration>

在crawl-urlfilter.txt中将如下语句改成需要的形式:

# accept hosts in MY.DOMAIN.NAME

+^http://([a-z0-9]*\.)*com.cn/
+^http://([a-z0-9]*\.)*cn/
+^http://([a-z0-9]*\.)*com/

注:“+”号前不要有空格

第二:执行抓取操作

(1).在Nutch根目录下新建一个url.txt文件,其每一行输入你想要爬去的网站域名。

例如:

http://www.qq.com/

http://www.sina.com.cn/

注:以行为单位,每行输入一个域名,且域名格式遵从上述例子,最后要加"/"

接着修改:apache-nutch-1.2-bin.zip\nutch-1.2\conf\nutch-default.xml中内容:

<property>
  <name>http.agent.name</name>
  <value>sina</value>
  <description>HTTP 'User-Agent' request header. MUST NOT be empty -
  please set this to a single word uniquely related to your organization.

  NOTE: You should also check other related properties:

    http.robots.agents
    http.agent.description
    http.agent.url
    http.agent.email
    http.agent.version

  and set their values appropriately.

  </description>
</property>

红色标记的地方不能为空,可以随便写一个


解决方法:在cygwin中输入:export LANG="zh_CN.GBK"
,而后回车
其实就是设置下linux的环境变量

一定要写:否则出现如下错误:

Exception in thread "main" java.io.IOException: Job failed!
at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1252)
at org.apache.nutch.crawl.Injector.inject(Injector.java:217)
at org.apache.nutch.crawl.Crawl.main(Crawl.java:124)

(2).打开cygwin,执行命令行:

注:作者的Nutch放置在G:/nutch

命令行:cd g:      (其中g表示你的apache-nutch-1.2-bin的存放位置)

image

apache-nutch-1.2-bin重命名为:nutch

命令行: cd nutch          

image 

命令行: bin/nutch crawl url.txt –dir localweb –depth 3 –threads 4

注:该命令行中的参数请自行学习参考,这里不多做解释。

此时,Nutch就开始执行抓取操作了,配置成功。

经过以上的步骤,后端的操作基本完毕,此时可以在cygwin中到nutch根目录下

执行下面命令进行简单的查询测试:

bin/nutch org.apache.nutch.searcher.NutchBean 关键字

<3>Tomcat的配置

(1).将tomcat安装目录下的\webapps下的ROOT删除;

(2).将nutch目录的nutch-1.2.war复制到tomcat\webapps下,并将其改名为ROOT.war;

     如果Tomcat正在运行,那么ROOT.war会自动生成ROOT文件夹;如果没有运行,那么启动Tomcat之后,会自动生成ROOT文件夹。

(3.)打开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>g:/nutch/localweb</value>

   </property>

  </nutch-conf>

  其中的"<value>g:/nutch/localweb</value>"部分,应根据自己的设置进行相应修改,是nutch抓取结果存放目录。

启动Tomcat,打开浏览器在地址栏中输入:http://localhost:8080/,即可看见nutch的搜索页面。

image

至此,Nutch的简单配置完毕,接下来说说如何在eclipse中导入并调试Nutch,

请点击查看文章




版权声明:本文首发在云栖社区,遵循云栖社区版权声明:本文内容由互联网用户自发贡献,版权归用户作者所有,云栖社区不为本文内容承担相关法律责任。云栖社区已升级为阿里云开发者社区。如果您发现本文中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,阿里云开发者社区将协助删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章