日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Nutch中MapReduce的分析[zz]

發布時間:2025/4/5 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nutch中MapReduce的分析[zz] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

Nutch是最早用MapReduce的項目 (Hadoop其實原來是Nutch的一部分),Nutch的plugin機制吸取了eclipse的plugin設計思路。在Nutch中 MapReduce編程方式占據了其核心的結構大部分。從插入url列表(Inject),生成抓取列表(Generate),抓取內容(Fetch), 分析處理內容(Parse),更新Crawl DB庫(Update ),轉化鏈接(Invert Links)一直到建立索引(Index)都是采用MapReduce來完成的。查看Nutch的源代碼我們能夠學到更多的 如何用MapReduce來處理我們編程中所遇到的問題。

Nutch從獲取下載列表到建立索引的過程:

插入url列表到Crawl DB,引導下面的抓取程序 循環: – 從Crawl DB生成一些url列表; – 抓取內容; – 分析處理抓取的內容; – 更新Crawl DB庫. 轉化每個頁面中外部對它的鏈接 建立索引

具體技術實現細節:

1。插入url列表(Inject)

MapReduce程序1: 目標:轉換input輸入為CrawlDatum格式. 輸入: url文件 Map(line) → <url, CrawlDatum> Reduce()合并多重的Url. 輸出:臨時的CrawlDatum文件. MapReduce2: 目標:合并上一步產生的臨時文件到新的DB 輸入: 上次MapReduce輸出的CrawlDatum Map()過濾重復的url. Reduce: 合并兩個CrawlDatum到一個新的DB 輸出:CrawlDatum

2。生成抓取列表(Generate)

MapReduce程序1: 目標:選擇抓取列表 輸入: Crawl DB 文件 Map() → 如果抓取當前時間大于現在時間 ,抓換成 <CrawlDatum, url>格式. 分發器(Partition) :用url的host保證同一個站點分發到同一個Reduce程序上. Reduce:取最頂部的N個鏈接. MapReduce程序2: 目標:準備抓取 Map() 抓換成 <url,CrawlDatum,>格式 分發器(Partition) :用url的host 輸出:<url,CrawlDatum>文件

3。抓取內容(Fetch)

MapReduce: 目標:抓取內容 輸入: <url,CrawlDatum>, 按host劃分, 按hash排序 Map(url,CrawlDatum) → 輸出<url, FetcherOutput> 多線程, 調用Nutch的抓取協議插件,抓取輸出<CrawlDatum, Content> 輸出: <url,CrawlDatum>, <url,Content>兩個文件

4。分析處理內容(Parse)

MapReduce: 目標:處理抓取的能容 輸入: 抓取的<url, Content> Map(url, Content) → <url, Parse> 調用Nutch的解析插件,輸出處理完的格式是<ParseText, ParseData> 輸出: <url,ParseText>, <url,ParseData><url,CrawlDatum>.

5。更新Crawl DB庫(Update )

MapReduce: 目標: 整合 fetch和parse到DB中 輸入:<url,CrawlDatum> 現有的db加上fetch和parse的輸出,合并上面3個DB為一個新的DB 輸出: 新的抓取DB

6。轉化鏈接(Invert Links)

MapReduce: 目標:統計外部頁面對本頁面鏈接 輸入: <url,ParseData>, 包含頁面往外的鏈接 Map(srcUrl, ParseData> → <destUrl, Inlinks> 搜集外部對本頁面的鏈接Inlinks格式:<srcUrl, anchorText> Reduce() 添加inlinks 輸出: <url, Inlinks>

7。建立索引(Index)

MapReduce: 目標:生成Lucene索引 輸入: 多種文件格式 parse處理完的<url, ParseData> 提取title, metadata信息等 parse處理完的<url, ParseText> 提取text內容 轉換鏈接處理完的<url, Inlinks> 提取anchors 抓取內容處理完的<url, CrawlDatum> 提取抓取時間. Map() 用ObjectWritable包裹上面的內容 Reduce() 調用Nutch的索引插件,生成Lucene Document文檔 輸出: 輸出Lucene索引

轉載于:https://www.cnblogs.com/shawnliu/archive/2008/06/16/1223377.html

總結

以上是生活随笔為你收集整理的Nutch中MapReduce的分析[zz]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。