(一)—Nutch簡介

2018-07-31 14:18 更新

原文出處:http://www.sanesee.com/

Nutch作為當(dāng)今最流行的開源爬蟲之一,已被企業(yè)廣泛使用。Nutch的插件機(jī)制使得開發(fā)者可以靈活地定制網(wǎng)頁抓取策略。Nutch有著悠久的歷史,當(dāng)今大名鼎鼎的Hadoop就是由Nutch發(fā)展而來。Nutch不僅可以運(yùn)行在單機(jī)模式下,還可以運(yùn)行在分布式模式下。

1 認(rèn)識Nutch

目前Nutch分為兩個大版本1.x和2.x,Apache分別對這兩個大版本進(jìn)行獨(dú)立開發(fā)和維護(hù)。其中,1.x和2.x最大的不同點(diǎn)在于,1.x是基于hadoop的HDFS文件系統(tǒng)的,而2.x將數(shù)據(jù)的存儲層抽象出來,可以將數(shù)據(jù)保存在Hbase、MySQL等數(shù)據(jù)庫中。還有一點(diǎn)很重要,Nutch在1.2以及之前,都是作為一個完整的搜索引擎進(jìn)行發(fā)布的,而從1.3開始,Nutch本身就主要只有爬蟲功能,若需要對抓取的數(shù)據(jù)建立索引并進(jìn)行搜索,還要用到Solr全文檢索服務(wù)器。由于Nutch和Solr都是基于Lucene開發(fā)的,因此Nutch抓取的數(shù)據(jù)可以輕松地在Solr中建立索引。Nutch官網(wǎng)可以下載到編譯好的1.x包,但2.x只提供源碼,需要自己編譯。Nutch使用Ant來構(gòu)建的,若自己編譯的話,需要安裝Ant來編譯源碼。

對于如何選擇Nutch的版本,主要考慮一下以下問題:如果只需要抓取少量的網(wǎng)站,并對其建立索引,使用1.x和2.x都可以,甚至都可以使用單機(jī)的,而不需分布式。但如果要抓取大量網(wǎng)站,甚至是全網(wǎng)爬行,那么最好選擇1.x,并且采用分布式,因?yàn)?.x是基于hadoop文件系統(tǒng)的,而hadoop又是專門為處理大數(shù)據(jù)而生。若抓取大量網(wǎng)站時采用2.x,可能會遇到一些性能問題,要是使用MySQL來存儲數(shù)據(jù),網(wǎng)頁數(shù)據(jù)上百億時,性能將是一個噩夢。

Nutch1.x不同的版本變化也比較大,執(zhí)行命令發(fā)生過較大改變,因此,建議初學(xué)者下載本教程對應(yīng)的版本1.10,等到熟悉使用Nutch的時候,那些改變對你而言就沒太大影響了。

Nutch作為當(dāng)今最流行的開源爬蟲之一,已被企業(yè)廣泛使用。Nutch的插件機(jī)制使得開發(fā)者可以靈活地定制網(wǎng)頁抓取策略。Nutch有著悠久的歷史,當(dāng)今大名鼎鼎的Hadoop就是由Nutch發(fā)展而來。Nutch不僅可以運(yùn)行在單機(jī)模式下,還可以運(yùn)行在分布式模式下。

2 Nutch工作環(huán)境

Nutch僅支持在Linux環(huán)境下工作,若要在Windows操作系統(tǒng)中使用Nutch,需要安裝Cygwin。Cygwin是在Windows下模擬Linux操作系統(tǒng)的軟件,它并非一個實(shí)際的操作系統(tǒng)。

最新版的Nutch 1.10需要JDK7運(yùn)行環(huán)境,當(dāng)然也可以使用最新版的JDK8。

若需要配置分布式運(yùn)行環(huán)境,還需要下載hadoop-1.2.0的版本。Hadoop的歷史版本下載地址為http://archive.apache.org/dist/hadoop/core/

本教程將演示編譯Nutch源碼的過程,因此還需要安裝Ant。

3 下載Nutch

    在Nutch的官方網(wǎng)站http://nutch.apache.org/downloads.html可以下載到最新版的Nutch,若需要下載歷史版本,請在這里下載http://archive.apache.org/dist/nutch/。本教程下載的包為apache-nutch-1.10-src.zip,它是一個源碼包,需要我們自己編譯,具體的編譯過程在后續(xù)教程中詳細(xì)講解。

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號