nutch crawdb update 详解

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

猜你喜欢

转载自chengqianl.iteye.com/blog/1597256