抓取流程-injector

这是一个将seed urls进行初始化为web图的过程,其中page 作为node,links作为边。

另外这里的urls(每行一个,可以在url后加上相关metadata,比如,nutch.score等参数进行url crawl的定制)。

 

过程:

一。sort job

此过程主要是在m阶段进行一些url清洗,如urlnormal,urlfilter,scorefiler;r阶段进行直接输出(可以说 是使用默认的)。输出使用sequence file.因为它保存了CrawlDatum object直接作为二进制保存,方便后续的merger job读取,

格式是:<url,crawldatum>

 

二。merge job

对前一个Job的输出以及之前存在于current下的data进行合并。

m:进行urlnormal,urlfilter.

r:对同一Url进行去重。如果之前是inject status -》 db_unfetch;否则使用原来的状态。

     note:这里使用的是InjectReducer,而不是CrawlDb.create()中的CrawlDbReducer,因为这个方法是共用代码抽取出来的,所以在Injector中进行了update为InjectReducer.从中的reduce()中可以看出,即使重复运行多次injector,它只会输出旧的crawldatum.

输出就是sort job的Sequence file与上次生成的map file合并(因为两者是兼容的) ,最終使用map file输出:删除旧current,将本次結果移到current下。这就是为什么current输出是map file 的缘故了。

格式为:<url,crawldatum>

 

三。清理

对上述过程产生的临时文件删除等。

 

结出格式:MapFileOutputFormat,即MapFile ,其中
==data file
leibnitz@leibnitz-laptop:~/Search_engine/nutch/mynutch1.2$ hadoop fs -text nutch/part-2/data
hadoop home:
http://www.163.com/    Version: 7                #7为当前nutch的修改版本
Status: 1 (db_unfetched)                    #see CrawlDatum.STATUS_DB_UNFETCHED
Fetch time: Mon Jul 04 14:57:19 CST 2011
Modified time: Thu Jan 01 08:00:00 CST 1970
Retries since fetch: 0
Retry interval: 2592000 seconds (30 days)
Score: 1.0    #seed url为1.0
Signature: null        #page md5摘要,未抓取,所以为空
Metadata:

http://www.csdn.net/    Version: 7
Status: 1 (db_unfetched)
Fetch time: Mon Jul 04 14:57:19 CST 2011
Modified time: Thu Jan 01 08:00:00 CST 1970
Retries since fetch: 0
Retry interval: 2592000 seconds (30 days)
Score: 1.0
Signature: null
Metadata:

==index
http://www.163.com/    86    #see MapFile

 

你可能感兴趣的:(Web)