(二)—Nutch配置

2018-07-31 14:18 更新

Nutch的編譯安裝需要JDK、Ant等環(huán)境,Nutch的主要配置項在nutch-default.xml這個文件中,自定義配置文件nutch-site.xml中配置的屬性會覆蓋nutch-default.xml中對應(yīng)的屬性,可以根據(jù)實際需要對其進行配置。

1 安裝JDK

在Oracle官網(wǎng)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

解壓后得到j(luò)dk1.8.0_45這個文件夾,先查看/usr/lib/路徑下有沒有jvm這個文件夾,若沒有,則新建一個jvm文件夾:

mkdir /usr/lib/jvm

將當(dāng)前解壓得到的jdk1.8.0_45復(fù)制到/usr/lib/jvm中:

mv jdk1.8.0_45 /usr/lib/jvm

打開profile設(shè)置環(huán)境變量:

vim /etc/profile

在profile的末尾加入以下內(nèi)容:

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

然后使用以下命令使得環(huán)境變量生效:

source /etc/profile

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

java –version

若以上命令沒有成功顯示版本信息,那有可能是之前的操作出現(xiàn)問題,請仔細檢查之前的操作。

2 安裝Ant

到Ant官網(wǎng)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設(shè)置環(huán)境變量:

vim /etc/profile

在profile文件末尾加入以下內(nèi)容:

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

使用以下命令使得環(huán)境變量生效:

source /etc/profile

查看Ant版本:

ant -version

3 安裝配置Nutch

請參考Nutch 1.10入門教程(一)——Nutch簡介下載Nutch1.10的源碼,若官網(wǎng)最新版已經(jīng)高于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的默認(rèn)配置文件:

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這個屬性是用于標(biāo)記爬蟲的,便于被爬的網(wǎng)站對其進行識別。

nutch-site.xml中配置的屬性會覆蓋nutch-default中的默認(rèn)屬性,在這里我們僅修改http.agent.name這個屬性,其它的不作改變。

到此,我們就配置好Nutch了,接著,在Nutch的主目錄使用以下命令對源碼進行編譯:

ant

首次編譯過程會耗費較多時間,因為需要下載較多的依賴包,具體時間根據(jù)實際網(wǎng)絡(luò)情況而定,快的話需要5-10分鐘,慢的話需要20分鐘以上。

編譯開始時會報如下警告:

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

這個警告不影響編譯結(jié)果,因此可以忽略。

編譯過程中也有可能因為網(wǎng)絡(luò)問題而出現(xiàn)編譯失敗,只需要使用如下命令清除上次編譯結(jié)果(不會刪除已經(jīng)下載好的依賴包):

ant clean

然后再使用如下命令進行編譯:

ant

在網(wǎng)絡(luò)較差的情況下,可能會重復(fù)上面兩步操作多次。

當(dāng)出現(xiàn)如下類似信息時,也就意味著編譯成功了:

BUILD SUCCESSFUL

Total time: 1 minute 7 seconds

4 編譯后的目錄結(jié)構(gòu)

Nutch編譯成功之后,會在主目錄下生成一個runtime文件夾。其中包含deploy和local兩個子文件夾。deploy用于分布式抓取,而local用于本地單機抓取。本節(jié)內(nèi)容先講解使用本地單機抓取,分布式抓取放到后續(xù)教程。

進入local文件夾,再進入bin文件夾。這里包含兩個腳本文件,一個是nutch,另一個是crawl。其中,nutch包含了所需的全部命令,而crawl主要用于一站式抓取。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號