crawdb update
map :CrawlDbFilter 这个map主要是用来合并数据的
输入,fetch产生的segment目录下面的crawl_fetch 和crawl_parse 以及crawldb/current ,
key:Text value:CrawlDatum
如果设置了urlNormalizers=true 对url进行normalize
如果设置了urlFiltering=true 对url进行过滤
如果url不为空 写入
key : Text 为url value: CrawlDatum
reduce :CrawlDbReducer 主要是用来合并数据的状态的,去重复
1 如果存在多个数据 如果数据没有fetch的,去fetchtime最新的数据(没有fetch 也是有fetchtime的), 如果数据已经fetch的,也是取fetchtime最新的数据。
2 如果已经fetch 的,去的数据的 签名,元数据 ,和外链
3 db.update.additions.allowed 这里有个配置如果为false,则crawldb中不存在的url不update,如果为false,新的url插入crawldb。
4 如果url没有fetch,说明是这个数据不需要update直接写入
5 如果已经fetch,而且crawldb 也有数据,则把crawldb的数据的元数据,putfetch的数据的元数据里面
6 根据状态设置相关的值
7 设置分数,异常generatortime
8 写入
更新数据,主要是把job的输出目录设置为crawldb的current
nutch crawdb update 详解
猜你喜欢
转载自chengqianl.iteye.com/blog/1597256
今日推荐
周排行