分佈式爬蟲nutch2.0初體驗------三大亮點

       實在是等不及了,下了開發版的nutch2.0來玩玩,nutch2.0有什麼不同呢?從官網wiki(見參考資料)可看到,主要是以下幾個方面:

1.抽象存儲層

       把存儲層抽象出來,不僅像之前那樣可以存放在hdfs上,也可以存在其它nosql中,如:hbase,cassandra,或關係數據庫。

2.精簡插件

       之前是差不多是一種文件使用一個插件來進行解析,現在主要是使用Tika來解析各種文檔(見:http://wiki.apache.org/nutch/TikaPlugin),tika是個強大的文檔處理庫,網上常見的文檔(etc html、pdf、word、excel、powerpoint... )它都可以解析。

3.提取爬蟲的公共功能

       可把url過濾,url狀態控制,索引去重,這些公共爬蟲功能提取出來,供其它爬蟲或相似項目(如:bixo, heritrix,droids)使用,就像tika被提取出來作爲各種文檔的解析工具那樣。

4.抽象索引過程

       提供一個輕量級的抽象層來整合來自其它搜索框架的索引/搜索功能,nutch2.0最終只是把文檔從DOM轉化爲NutchDocument,去掉搜索、索引的功能,交給第三方做。

5.重寫solr索引去重

       所有操作都通過webtable來進行,同時避免從solr中檢索數據。

6.各種新功能

       如:支持網站地圖,規範標籤,更好控制跳轉,發現重複網站,web圖管理工具等。

下面是開發版的三個亮點:
亮點 1 支持多種持久化層

       從nutch2.0的源碼來看,存儲層已經換成了gora,gora是apache的一個項目,主要是作爲nosql的orm框架(也支持sql),目前支持hbase,cassandra,accumulo(美國國家安全局(NSA)向Apache基金會捐贈了一個新數據庫項目,提供了細粒度訪問控制,來頭不小),和關係數據庫(開發中,功能未完善)。gora項目地址:http://gora.apache.org

亮點 2 restful風格的服務接口

       nutch2.0可以把nutch作爲一個爬蟲服務,通過rest接口管理爬蟲狀態,絕對是個好東西。

亮點 3 簡化解析插件

       nutch2.0使用tika庫來解析各種文檔,tika庫封裝了常用文檔的解析類(如:poi,pdfbox這些),配置插件時只需配置解析html和tika就行了,方便了很多。

       目前的開發版索引和搜索的抽象層還沒有開發出來,主要還是使用solr作爲主要的索引/搜索支撐,其它上面提到的特性不知道實現了沒有,要看看源碼知道。

       添加了對nosql存儲層的支持,nutch和google原先的模型很像了,google的分佈式文件系統GFS,nutch的HDFS,同樣是使用mapreduce算法處理,存儲層google的bigtable,nutch的hbase、cassandra、accumulo(三個nosql都是基於bigtable論文)。不過這些都差不多是google十年前的技術了,現在不知道改進了多少,還是期待nutch2.0早日發佈。

參考資料:

http://wiki.apache.org/nutch/Nutch2Roadmap

http://www.searchtech.pro/articles/2013/02/18/1361192452131.html

本文地址:http://blog.csdn.net/laigood12345/article/details/7626394

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