Injector分两步MapReduce操作:获取爬虫数据、将数据合并到爬虫数据库中。
参见Injector.inject(Path crawlDb, Path urlDir)方法
MapReduce1: 把输入数据转换为数据库所需的格式
[list]
[*] 输入:未处理的,包含url信息的文本文件
[*] Map(line) -> <url, CrawlDatum>; status=db_unfetched
[*] Reduce()是同一化(即具有相同key值的key-value对根据key值排序后,连续写在SequenceFile中,这是Hadoop默认的Reducer)
[*] 输出: 包含临时文件的目录
[/list]
MapReduce2: 合并到已有数据库
[list]
[*] 输入:第一步的输出和已存在的数据库
[*] Map是同一化
[*] Reduce: 合并CrawlDatum成单个入口
[*] 输出: 新版本的数据库
[/list]
参见Injector.inject(Path crawlDb, Path urlDir)方法
MapReduce1: 把输入数据转换为数据库所需的格式
[list]
[*] 输入:未处理的,包含url信息的文本文件
[*] Map(line) -> <url, CrawlDatum>; status=db_unfetched
[*] Reduce()是同一化(即具有相同key值的key-value对根据key值排序后,连续写在SequenceFile中,这是Hadoop默认的Reducer)
[*] 输出: 包含临时文件的目录
[/list]
MapReduce2: 合并到已有数据库
[list]
[*] 输入:第一步的输出和已存在的数据库
[*] Map是同一化
[*] Reduce: 合并CrawlDatum成单个入口
[*] 输出: 新版本的数据库
[/list]