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]
本文介绍了一种名为Injector的数据处理方法,通过两个阶段的MapReduce操作实现爬虫数据的整理与合并。第一阶段将原始的URL信息转换为数据库所需格式;第二阶段则将处理后的数据与现有数据库进行合并。
1628

被折叠的 条评论
为什么被折叠?



