(二)—Nutch配置

2018-07-31 14:18 更新

Nutch的编译安装需要JDK、Ant等环境,Nutch的主要配置项在nutch-default.xml这个文件中,自定义配置文件nutch-site.xml中配置的属性会覆盖nutch-default.xml中对应的属性,可以根据实际需要对其进行配置。

1 安装JDK

在Oracle官网http://www.oracle.com/technetwork/java/javase/downloads/index.html下载JDK,本教程下载的是jdk-8u45-linux-x64.tar.gz。解压JDK包:

tar zxvf jdk-8u45-linux-x64.tar.gz

解压后得到jdk1.8.0_45这个文件夹,先查看/usr/lib/路径下有没有jvm这个文件夹,若没有,则新建一个jvm文件夹:

mkdir /usr/lib/jvm

将当前解压得到的jdk1.8.0_45复制到/usr/lib/jvm中:

mv jdk1.8.0_45 /usr/lib/jvm

打开profile设置环境变量:

vim /etc/profile

在profile的末尾加入以下内容:

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_45
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

然后使用以下命令使得环境变量生效:

source /etc/profile

到此为止,JDK就安装完成了。查看JDK的版本:

java –version

若以上命令没有成功显示版本信息,那有可能是之前的操作出现问题,请仔细检查之前的操作。

2 安装Ant

到Ant官网http://ant.apache.org/bindownload.cgi下载最新版的Ant,本教程下载的包为apache-ant-1.9.6-bin.zip。使用以下命令解压安装包:

unzip apache-ant-1.9.6-bin.zip

解压后可得到apache-ant-1.9.5这个文件夹,将其移动到/usr/local/文件夹中:

mv apache-ant-1.9.5 /usr/local/

打开profile设置环境变量:

vim /etc/profile

在profile文件末尾加入以下内容:

export ANT_HOME=/usr/local/ant
export PATH=$PATH:$ANT_HOME/bin

使用以下命令使得环境变量生效:

source /etc/profile

查看Ant版本:

ant -version

3 安装配置Nutch

请参考Nutch 1.10入门教程(一)——Nutch简介下载Nutch1.10的源码,若官网最新版已经高于1.10,则需要在历史版本中进行下载。本教程下载的Nutch包为apache-nutch-1.10-src.zip。

使用以下命令解压源码包:

unzip apache-nutch-1.10-src.zip

解压后得到apache-nutch-1.10这个文件夹,然后进入文件夹:

cd apache-nutch-1.10

打开Nutch的默认配置文件:

vim conf/nutch-default.xml

找到http.agent.name这个属性,将其拷贝到conf/nutch-site.xml中,并修改value,修改后的nutch-site.xml如下:

<configuration>
<property>
  <name>http.agent.name</name>
    <value>myNutch</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>
</configuration>

http.agent.name这个属性是用于标记爬虫的,便于被爬的网站对其进行识别。

nutch-site.xml中配置的属性会覆盖nutch-default中的默认属性,在这里我们仅修改http.agent.name这个属性,其它的不作改变。

到此,我们就配置好Nutch了,接着,在Nutch的主目录使用以下命令对源码进行编译:

ant

首次编译过程会耗费较多时间,因为需要下载较多的依赖包,具体时间根据实际网络情况而定,快的话需要5-10分钟,慢的话需要20分钟以上。

编译开始时会报如下警告:

Could not load definitions from resource org/sonar/ant/antlib.xml. It could not be found.

这个警告不影响编译结果,因此可以忽略。

编译过程中也有可能因为网络问题而出现编译失败,只需要使用如下命令清除上次编译结果(不会删除已经下载好的依赖包):

ant clean

然后再使用如下命令进行编译:

ant

在网络较差的情况下,可能会重复上面两步操作多次。

当出现如下类似信息时,也就意味着编译成功了:

BUILD SUCCESSFUL

Total time: 1 minute 7 seconds

4 编译后的目录结构

Nutch编译成功之后,会在主目录下生成一个runtime文件夹。其中包含deploy和local两个子文件夹。deploy用于分布式抓取,而local用于本地单机抓取。本节内容先讲解使用本地单机抓取,分布式抓取放到后续教程。

进入local文件夹,再进入bin文件夹。这里包含两个脚本文件,一个是nutch,另一个是crawl。其中,nutch包含了所需的全部命令,而crawl主要用于一站式抓取。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号