天天看點

hadoop使用(四)

做一個網絡爬蟲的程式吧,根據客戶的需求,要求把相關的内容爬取到本地

最終選擇的是apache nutch,到目前為止最新的版本是1.3

Nutch是一個開源的網頁抓取工具,主要用于收集網頁資料,然後對其進行分析,建立索引,以提供相應的接口來對其網頁資料進行查詢的一套工具。其底層使用了Hadoop來做分布式計算與存儲,索引使用了Solr分布式索引架構來做,Solr是一個開源的全文索引架構,從Nutch 1.3開始,其內建了這個索引架構

在下面位址中可以下載下傳到最新的Nutch 1.3二進制包和源代碼

<a href="http://mirror.bjtu.edu.cn/apache//nutch/">http://mirror.bjtu.edu.cn/apache//nutch/</a>

   3.1 對下載下傳後的壓縮包進行解壓,然後cd $HOME/nutch-1.3/runtime/local

   3.2 配置bin/nutch這個檔案的權限,使用chmod +x bin/nutch

   3.3 配置JAVA_HOME,使用export JAVA_HOME=$PATH

4.1 配置http.agent.name這個屬性,在conf目錄下

&lt;prename="code"class="html"&gt;&lt;property&gt;      &lt;name&gt;http.agent.name&lt;/name&gt;      &lt;value&gt;My Nutch Spider&lt;/value&gt;  &lt;/property&gt; &lt;pre name="code" class="html"&gt;&lt;property&gt; &lt;name&gt;http.agent.name&lt;/name&gt; &lt;value&gt;My Nutch Spider&lt;/value&gt;

   在這個目錄中建立一個url檔案,寫上一些url,如

http://www.apache.org http://nutch.apache.org/
bin/nutch crawl urls -dir mydir -depth 3 -topN 5  bin/nutch crawl urls -dir crawl -depth 3 -topN 5

注意,這裡是不帶索引的,如果要對抓取的資料建立索引,運作如下指令

-dir                       選項設定抓取結果存放目錄

-depth                 選項設定爬取的深度

-threads             選項設定并行爬取的線程數

-topN                  選項設定每個深度爬取的最大頁數

最後就可以檢視mydir中的結果了

hadoop使用(四)

一個典型的爬蟲主要有如下階段

URL庫初始化然後開始爬取。

爬蟲讀取沒有通路過的URL,來确定它的工作範圍。

擷取URL的内容

解析内容,擷取URL以及所需的資料。

存儲有價值的資料。

規範化新抓取的URL。

過濾掉不需要爬去的URL。

把要抓取的URL更新到URL庫中。

重複步驟2,直到抓取的網頁深度完畢為止。

附加一張中文圖

hadoop使用(四)

不知道為什麼在Nutch-1.3中沒了Nutch自帶的搜尋war檔案,而且在Nutch-1.3中,抓取檔案後,生成的目錄隻有crawldb,linkdb,segments

 對比這兩個,搜尋同一關鍵字,發現Nutch搜尋的展示結果有重複,而solr沒有重複,還有solr可以在conf/schema.xml配置字段屬 性,nutch好像改了這個配置檔案,也沒起效果,比如,我想讓索引中存儲content和termvector,可是搜尋結果,并沒有存儲

下面安裝并且配置solr

從官方下載下傳

http://www.apache.org/dyn/closer.cgi/lucene/solr/

下載下傳完成後解壓縮

到solr的example目錄下,運作

java -jar start.jar

運作成功如圖

hadoop使用(四)

打開浏覽器

http://localhost:8983/solr/

進入solradmin出現如下界面,運作成功

hadoop使用(四)

hadoop使用:

<a href="http://www.cnblogs.com/skyme/archive/2011/10/26/2223984.html">hadoop使用(一)</a>

<a href="http://www.cnblogs.com/skyme/archive/2011/10/27/2225202.html">hadoop使用(二)</a>

<a href="http://www.cnblogs.com/skyme/archive/2011/10/28/2226850.html">hadoop使用(三)</a>

<a href="http://www.cnblogs.com/skyme/archive/2012/07/29/2227507.html">hadoop使用(四)</a>

<a href="http://www.cnblogs.com/skyme/archive/2012/06/01/2529855.html">hadoop使用(五)</a>

<a href="http://www.cnblogs.com/skyme/archive/2012/06/04/2534876.html">hadoop使用(六)</a>

hbase實戰:

<a href="http://www.cnblogs.com/skyme/archive/2012/07/25/2608310.html">hbase實戰——(1.1  nosql介紹)</a>