`
chengqianl
  • 浏览: 51625 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

nutch LinkDb invert 详解

阅读更多
LinkDb

map :LinkDb 
    输入目录为segments目录里面所有segment下面的parse_data目录
    1 首先对key:url 如果配置filter和normalize 则进行filter和normalize
    2 如果url不为空 则分析他的外链,db.ignore.internal.links配置为true,如果源链接和外链都是同一个host name 则忽略
    3 如果配置filter和normalize ,对外链进行,则进行filter和normalize
    4 写入,key:外链的url,value:源url

reduce LinkDbMerger key:Text  url value:Inlinks,入链
     1   合并相同的key的value.为list 这里有个db.max.inlinks这个配置最大的外链数目,如果超过这个,则其余的抛弃。
      2 写入 输出目录为    Path newLinkDb =
      new Path("linkdb-" +
               Integer.toString(new Random().nextInt(Integer.MAX_VALUE)));

   
如果存在linkdb则需要合并
合并的job:createMergeJob
map :LinkDbFilter 输入目录上个job的输出 ,linkdb/current
     1  首先对key:url 如果配置filter和normalize 则进行filter和normalize
     2  如果key 不为空,遍历value,对每个value 也是url,如果配置filter和normalize 则进行filter和normalize ,如果不为空加入Inlinks,,如果Inlinks 不为空写入key:Text url,value:Inlinks

reduce: LinkDbMerger  同job1

LinkDb.install(job, linkDb);  替换原来的linkdb。如果linkdb/old 存在,则删除,把linkdb/current  重命名为linkdb/old ,把上个job的输出变成linkdb/current,删除linkdb/old
    linkdb/old
  • 大小: 26.5 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics