这是一个将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