inject操作調用的是nutch的核心包之一crawl包中的類Injector。 inject操作主要作用: 1.? 將URL集合進行格式化和過濾,消除其中的非法URL,并設定URL狀態(UNFETCHED),按照一定方法進行初始化分值; 2. 將URL進行合并,消除重復的URL入口; 3.? 將URL及其狀態、分值存入crawldb數據庫,與原數據庫中重復的則刪除舊的,更換新的。
?做完之前的實做,已經對hadoop有一定的體驗,然而各位也許心中有些疑問,就是我學了hadoop到底可以用來..?,因此在此介紹一個hadoop的應用,搜尋引擎nutch ?此篇的重點在於 o完整的安裝nutch o用hadoop的角度來架設nutch o解抉中文亂碼問題 o搜尋引擎不只是找網頁內的資料,也能爬到網頁內的檔案(如pdf,msword) o也可運行在多臺node
1基本原理:1.1體系結構設計:網絡蜘蛛一般都具有3模塊:HTTP下載模塊,鏈接分析模塊,下載控制模塊。HTTP下載模塊利用http網絡協議下載,獲取并存儲內容。鏈接分析模塊能提取網頁中的超鏈接,用來獲得后續頁面入口。下載控制模塊控制頁面訪問次序、更新策略、訪問隊列調度等工作。工作流程:訪問URL數據庫,讀取URL入口地址,生成內存訪問隊列。尋找空閑的HTTP下載模塊,分配URL,啟動下載任務。HTTP下載模塊訪問互聯網,得到的網頁內容放入結果隊列。
網絡上關于nutch1.4的配置和使用很少,官方網站提供的方法我研究了半天特別麻煩,而且發現弄完后有的依賴包找不到,我決定放棄使用。將這兩天關于nutch1.4配置的另一種方法整理一下僅供參考!
Nutch搜索引擎數據獲取。1基本原理:1.1體系結構設計:網絡蜘蛛一般都具有3模塊:HTTP下載模塊,鏈接分析模塊,下載控制模塊。HTTP下載模塊利用http網絡協議下載,獲取并存儲內容。鏈接分析模塊能提取網頁中的超鏈接,用來獲得后續頁面入口。下載控制模塊控制頁面訪問次序、更新策略、訪問隊列調度等工作。工作流程:訪問URL數據庫,讀取URL入口地址,生成內存訪問隊列。尋找空閑的HTTP下載模塊,分配URL,啟動下載任務。HTTP下載模塊訪問互聯網,得到的網頁內容放入結果隊列。定期保存到網頁數據庫,為后續索引做準備。鏈接分析模塊提取頁面內的新連接,存入URL數據庫等待下載。重復上述過程直到全部下載完成,等待新的任務。
Nutch中的所有配置文件都放置在總目錄下的conf子文件夾中,最基本的配置文件是conf/nutch-default.xml。這個文件中定義了 Nutch的所有必要設置以及一些默認值,它是不可以被修改的。如果你想進行個性化設置,你需要在conf/nutch-site.xml進行設置,它會 對默認設置進行屏蔽。
網絡上關于nutch1.4的配置和使用很少,官方網站提供的方法我研究了半天特別麻煩,而且發現弄完后有的依賴包找不到,我決定放棄使用。將這兩天關于nutch1.4配置的另一種方法整理一下僅供參考!如有其它問題歡迎加1277140354一起交流學習!
Nutch是一個基于Lucene,類似Google的完整網絡搜索引擎解決方案,基于Hadoop的分布式處理模型保證了系統的性能,類似Eclipse的插件機制保證了系統的可客戶化,而且很容易集成到自己的應用之中。Nutch 0.8 完全使用Hadoop重寫了骨干代碼,另有很多地方作了合理化修正,非常值得升級。
Nutch1.0源代碼分析
org.apache.nutch.crawl.Injector:?1,注入url.txt?2,url標準化?3,攔截url,進行正則校驗(regex-urlfilter.txt)?4,對符URL標準的url進行map對構造url,CrawlDatum,在構造過程中給CrawlDatum初始化得分,分數可影響urlhost的搜索排序,和采集優先級!5,reduce只做一件事,判斷url是不是在crawldb中已經存在,如果存在則直接讀取原來CrawlDatum,如果是新host。
Nutch是一個基于Lucene,類似Google的完整網絡搜索引擎解決方案,基于Hadoop的分布式處理模型保證了系統的性能,類似Eclipse的插件機制保證了系統的可客戶化,而且很容易集成到自己的應用之中。
Lucene 不是完整的應用程序,而是一個用于實現全文檢索的軟件庫。 Nutch 是一個應用程序,可以以 Lucene 為基礎實現搜索引擎應用。
Nutch的爬蟲抓取網頁有兩種方式,一種方式是Intranet Crawling,針對的是企業內部網或少量網站,使用的是crawl命令;另一種方式是Whole-webcrawling,針對的是整個互聯網,使用inject、generate、fetch和updatedb等更底層的命令。本文將以使用Nutch為筆者在CSDN處的個人專欄文章內容建立搜索功能為例,來講述Intranet Crawling的基本使用方法(假設用戶電腦系統已安裝好JDK、Tomcat和Resin,并做過相應的環境配置)。