Nutch安裝第四天,進入正題,Nutch2.4的配置和編譯

    今天該進入主題了

十一、Nutch 

    首先是下載,原來只有一個版本,當時折騰的時候是1.0,現在突然冒出兩個版本,一個1.16,一個2.4,那麼到底有什麼差別呢?先查查資料看看再說。

    現在Nutch分爲兩個版本:1.x和2.x,這兩個版本的主要區別在於底層的存儲不同。1.x版本是基於Hadoop架構的,底層存儲使用的是HDFS,而2.x通過使用Apache Gora,使得Nutch可以訪問HBase、Cassandra、MySQL、DataFileAvroStore、AvroStore等等。從這點上來看,就根據個人的需要來確定了,用什麼樣的存儲方式更方便咱就用什麼,現在咱們可以考慮2.X版本的mysql,爲啥,因爲我就認識這一個,嘿嘿,挺不好意思的哈,其他都臉盲。

    既然準備使用MySql,就首先要安裝再進行後續的操作。

    1、MySql的安裝

        習慣先檢查一下有沒有更新,有更新了先更新完再說。

        apt update

        apt upgrade

     

        檢索一下MySql的包包

        apt list | grep mysql

        簡單點操作mysql還是要有個workbench比較好一些哈,先上網站下載deb包準備着。

        https://dev.mysql.com/downloads/repo/apt/   直接網站左下角,No thanks,just start my download.就可以下載了。

        然後下載workbench

        https://dev.mysql.com/downloads/workbench/   選擇ubuntu19.10版本,同樣左下角點擊下載。

 

        開始安裝mysql 已經是8.0版本了   245M大小

        apt install mysql-server mysql-client

        默認安裝好之後沒有任何密碼的設置提示,那好吧,先看看到底有沒有密碼

        mysql  呀,直接進入了,壓根沒有密碼,抓緊時間設置一個,多少有點安全保障啊

        ALTER user 'root'@'localhost' IDENTIFIED WITH caching_sha2_password by '你的密碼';

        現在把workbench安裝好,用root登錄一下試試,是不是提示了密碼了。登錄OK

    2、Nutch  下載2.x版本的tar包

        提取所有文件後,複製到usr目錄下備用,然後下載ant並配置環境,爲什麼前面安裝的JDK8,在這裏體現出來了,ant的最新版本是1.10.7,就是對應jdk8的版本。1.9版本對應的是JDK1.5

        提取文件,將目錄複製到usr或者opt目錄,看個人習慣,我是放到了opt目錄下

        配置環境變量   gedit /etc/profile

        添加

        #SET ANT ENVIRONMENT

        export ANT_HOME=/opt/apache-ant-1.10.7-bin

        export PATH=${ANT_HOME/bin}:$PATH    #$PATH切記不要忘記了!並且用:英文半角的冒號連接。

        保存退出,重啓計算機或者source /etc/profile

        測試一下ant -version

        有了版本號提示,就表示ant配置成功了。

 

    3、配置Nutch支持mysql

        gedit ivy/ivy.xml 文件

        在<dependencies>段內,excute段前的dependency 段添加。

        <!--配置ivy/ivy.xml-->

        <!--ivy也是一種包管理工具,和maven差不多,這裏就是添加sql的依賴-->

        <dependency org="mysql" name="mysql-connector-java" rev="5.1.18" conf="*->default"/>

        <dependency org="org.apache.gora" name="gora-sql" rev="0.1.1-incubating" conf="*->default" />

        <dependency org="org.apache.gora" name="gora-core" rev="0.3" conf="*->default"/>這一行修改爲下面內容。改版本號。

        <dependency org="org.apache.gora" name="gora-core" rev="0.2.1" conf="*->default"/>

        <!-- Uncomment this to use SQL as Gora backend. It should be noted that the gora-sql 0.1.1-incubating artifact is NOT compatable with gora-core 0.3. Users should downgrade to gora-core 0.2.1 in order to use SQL as a backend. -->

 

        添加mysql的相關配置

        同樣是nutch目錄下的conf/gora.properties

        默認是沒有sqlstore段,在最後添加如下代碼:

        #MySQL properties 

        gora.sqlstore.jdbc.driver=com.mysql.jdbc.Driver

        gora.sqlstore.jdbc.url=jdbc:mysql://localhost:3306/nutch?createDatabaseIfNotExist=true

        gora.sqlstore.jdbc.user=root

        gora.sqlstore.jdbc.password=你的mysql密碼

 

        還是conf目錄下,有一個nutch-default.xml文件,打開,複製所有內容到 nutch-site.xml,這個文件默認情況下是沒有配置參數數據的。

 

十二、Nutch-site.xml詳細配置

    1、http.agent.name

        這個value值默認是空,在編譯使用前必須配置value值

        <property>

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

            <value>Linux Nutch Spider</value>

        </property>

        在下面的<description></description>中有說明,用於控制‘User Agent’的requests header,也就是請求頭,MUST NOT be empty !說的很清楚了,沒有請求頭的蜘蛛在爬取數據時就可能會出錯,也就是非response 200!,請求不成功或者被拒絕。

        還有一個就是下面緊挨着的http.robots.agents的value值,不需要修改,這個會涉及到很多網站根目錄下設置的robots.txt,下面說明的很清晰apart from 'http.agent.name',除了上面的agent.name外的,如果不知道的話,可以留空,默認使用http.agent.name

 

    2、http.agent.version

        根據自己需要顯示的版本進行設置,也可以不設置。

    3、http.accept.language

        這個涉及到了語言的問題,請求頭可以接受的語言,這裏允許使用非英語語言作爲默認檢索的語言。這裏可以在value中添加ja-jp,中文的則需要添加zh-CN,zh

        <property>

            <name>http.accept.language</name>

            <value>ja-jp, en-us,en-gb,en;q=0.7,*;q=0.3</value>

            <description>Value of the “Accept-Language” request header field.

            This allows selecting non-English language as default one to retrieve.

            It is a useful setting for search engines build for certain national group.

            </description>

        </property>

 

    4、FTP properties控制爬取ftp,其中的用戶名ftp.username和ftp.password,根據自己掌握的內容修改value值

 

    5、<!-- parser properties -->975行左右

        這裏需要修改的是parser.character.encoding.default,默認的值是<value>windows-1252</value>,修改爲<value>utf-8</value>,這個主要用於如果無法返回編碼信息的時候默認使用的編碼形式。

        <property>

            <name>parser.character.encoding.default</name>

            <value>utf-8</value>

            <description>The character encoding to fall back to when no other information

            is available</description>

        </property>

 

    6、<!-- storage properties -->  1415行左右

        storage.data.store.class

        這個控制用於存儲和檢索數據的存儲類,下面有明確的舉例,我們複製第一個---sql類,替換掉value值。

        <property>

            <name>storage.data.store.class</name>

            <value>org.apache.gora.sql.store.SqlStore</value>

            <description>The Gora DataStore class for storing and retrieving data.

            Currently the following stores are available: ….

            </description>

        </property>

 

    7、還有一個額外的添加配置

        generate.batch.id   只有有什麼特殊的作用,我也不知道,學着做吧。

 

        <property>

            <name>generate.batch.id</name>

            <value>*</value>

        </property>

        在</configuration>之前添加

 

十三、編譯Nutch

    小插曲來了,忘記下載sonar-ant-task-2.X了,CSDN倒是多的是,2.1,2.2都有,就是要幣,沒有的就百度一下,可以下載到的哈。

    把這個.jar包放到nutch目錄下。java2s的網站下載很不穩定,開始還跑,一會兒網速就掉成0。

    將下載的sonar-ant-task-2.1.jar文件拷貝到nutch目錄下,然後修改目錄下的build.xml文件,主要還是涉及ant和sql

    找到<!--SONAR targets-->行,在<taskdef></classpath>上面添加一行,內容如下:

        <classpath><fileset dir="." includes="sonar*.jar" />

    保存文件後,在nutch目錄下,執行ant runtime命令,要關注是否出現錯誤,根據提示進行修改,一般配置正確的話,都會正常執行,直到出現BUILD SUCCESSFUL即完成編譯,不要以爲是死機了哈。別忘了看看ant的配置是否還有效,如果無法打開ant,那就重啓計算機再試一次,讓配置生效在做。

    忙其他事情,結果第二天停電,我勒個去,runtime和bin目錄都沒看到,這肯定是失敗了啊,今天重新編譯。

     

 

     說兩句題外話,本來是想用國產的deepinlinux的,來回的sudo不叫麻煩,想用root直接登錄,結果操作了半天都沒有辦法使用root賬號,在社區找了半天,才發現,deeplinux就是不能使用root賬戶的,那還是算了,用ubuntu吧,關鍵的一個原因是ubuntu下部署nutch的資料也相對多一些,遇到問題還能搜索一下,參考參考。





 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章