1. 程式人生 > >Nutch2.3 + Hbase 配置到爬行

Nutch2.3 + Hbase 配置到爬行

準備工作:JDK、Hbase、Ant、Nutch

  1. 安裝JDK(JDK8) 如果你已經安裝JDK跳過此步驟

$:cd /usr/local

$:wget http://download.oracle.com/otn-pub/java/jdk/8u65-b17/jdk-8u65-linux-x64.tar.gz

$:tar zxvf jdk-8u65-linux-x64.tar.gz

$:mv jdk-8u65-linux-x64 jdk8

配置JAVA環境變數

$:vim ~/.bashrc

在bashrc中新增以下變數

export
JAVA_HOME=/usr/local/jdk8 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

$:source ~/.bashrc

輸入命令測試是否安裝成功

$:java

java

$:javac

javac

如果你看到類似以上兩張圖,表示OK了

2 安裝Hbase(Hbase0.94) 如果你已經安裝Hbase跳過此步驟

$:cd /usr/local

$:wget http://archive.apache.org/dist/hbase/hbase-0.94.14/hbase-0.94.14.tar.gz

$:tar zxvf hbase-0.94.14.tar.gz

$:mv hbase-0.94.14.tar.gz hbase

配置Hbase環境變數

$:vim ~/.bashrc

修改bashrc的PATH變數

export $JAVA_HOME/bin:/usr/local/hbase/bin:$PATH

$:source ~/.bashrc

輸入命令測試是否安裝成功

$:hbase -version

hbase -version

如果你看到類似上圖,表示OK了

3 安裝Ant 如果你已經安裝Ant跳過此步驟

$:cd /usr/local

$:wget http://mirrors.hust.edu.cn/apache//ant/binaries/apache-ant-1.9.6-bin.tar.gz

$:tar zxvf apache-ant-1.9.6-bin.tar.gz

$:mv apache-ant-1.9.6-bin.tar.gz ant

配置Ant環境變數

$:vim ~/.bashrc

修改bashrc的PATH變數

export $JAVA_HOME/bin:/usr/local/hbase/bin:/usr/local/ant/bin:$PATH

$:source ~/.bashrc

輸入命令測試是否安裝成功

$:ant -version

ant -version

如果你看到類似上圖,表示OK了

4 配置Nutch

$:cd /usr/local

$:wget http://124.202.164.16/files/4214000005F0F9BA/mirror.bit.edu.cn/apache/nutch/2.3/apache-nutch-2.3-src.tar.gz

$:tar zxvf apache-nutch-2.3-src.tar.gz

$:mv apache-nutch-2.3-src.tar.gz nutch

$:vim /usr/local/nutch/conf/nutch-site.xml

在nutch-site.xml的configuration標籤里加入以下配置

    <property>
        <name>http.agent.name</name>
        <value>*這裡寫你的爬蟲名字*</value>
    </property>
    <property>
        <name>storage.data.store.class</name>
        <value>org.apache.gora.hbase.store.HBaseStore</value>
        <description>Default class for storing data</description>
    </property>

如圖所示
default-site.xml

繼續,修改regex-urlfilter.txt檔案

$:vim /usr/local/nutch/conf/regex-urlfilter.txt

regex-urlfilter.txt
如圖所示,註釋掉裡面的一些正則,為了之後抓取資料看到的效果更好,regex-urlfilter.txt用來過濾抓取網站的URL規則,關於regex-urlfilter.txt的正則語法就不作詳細說明,網上一堆,這裡就按照這樣配置就行了.

$:vim /usr/local/nutch/ivy/ivy.xml

找到下面這行,把註釋開啟

org="org.apache.gora" name="gora-hbase" rev="0.4" conf="*->default"/>

如圖所示
ivy.xml

$:vim /usr/local/nutch/conf/gora.properties

開啟gora.properties檔案新增以下配置

gora.datastore.default=org.apache.gora.hbase.store.HBaseStore

如圖所示

gora.properties

在seed.txt中新增要抓取的連結 這裡以csdn為例

$:cd /usr/local/nutch/conf/

$:mkdir -p urls

$:cd urls

$:touch seed.txt

$:vim seed.txt

seed.txt

最後開始編譯

$:cd /usr/local/nutch/

編譯runtime

$:ant runtime

編譯完成後

$:cd /usr/local/nutch/runtime/local/bin

抓取

$:./crawl /usr/local/nutch/conf/urls/ numberOfRounds 10

抓取完成後進入hbase shell檢視資料

$:hbase shell

檢視列表

$:list

檢視資料(numberOfRounds_webpage)為表名,以list命令查出的表名為準,這裡就以此表名做例子

$:scan 'numberOfRounds_webpage'

抓取資料

OK,Hbase裡已經能查到抓取的資料了