nutch源代码分析之Injector

Injector分两步MapReduce操作:获取爬虫数据、将数据合并到爬虫数据库中。
参见Injector.inject(Path crawlDb, Path urlDir)方法

MapReduce1: 把输入数据转换为数据库所需的格式
  •   输入:未处理的,包含url信息的文本文件
  •   Map(line) -> <url, CrawlDatum>; status=db_unfetched
  •   Reduce()是同一化(即具有相同key值的key-value对根据key值排序后,连续写在SequenceFile中,这是Hadoop默认的Reducer)
  •   输出: 包含临时文件的目录

MapReduce2: 合并到已有数据库
  • 输入:第一步的输出和已存在的数据库
  • Map是同一化
  • Reduce: 合并CrawlDatum成单个入口
  • 输出: 新版本的数据库

你可能感兴趣的:(mapreduce,hadoop)