nutch的inject 有二个job
第一个job 如下图
map :InjectMapper 功能如下
1 url是否有tab分割的k-v 对如果有记录下来,
2 如果配置了过滤使用 URLNormalizers和 URLFilters 对url 进行格式化和过滤,
3 如果过滤的url 不为空则创建CrawlDatum对象,状态 STATUS_INJECTED,设置fetcher 间隔时间从fetchdb.fetch.interval.default 配置中取,如果没有默认2592000s 为30 天
4 设置fectchtime 为当前时间 datum.setFetchTime(curTime);
5 设置 score 根据db.score.injected 配置分数,默认为1
这个job 只有map 没有reduce,所以使用默认的reduce
map 输入 : 存放url的目录 如果 bin/nutch crawl urls -dir crawl -topN 1 -depth 1 这个命令 输入是urls,默认的使用TextInputFormat输入的 key:偏移量 value:一行的文本 ,map的输出为 key :Text 为url, value:CrawlDatum
没有设置reduce 使用默认的Reducer
reduce输出 :mapred.temp.dir 配置的属性值目录下面的(inject-temp-当前时间)下面 输出为 key :Text 为url, value:List<CrawlDatum>
第二个job如下图
这个job 叫mergerjob主要是合并第一个job的输出和crawldb/current 下面的值进行合并,输出目录为crawldb/current 。
map :CrawlDbFilter 功能如下
输入目录为参数crawlDb/current 和上次job的输出目录
key:Text value:CrawlDatum
如果设置了urlNormalizers=true 对url进行normalize
如果设置了urlFiltering=true 对url进行过滤
如果url不为空 写入
key : Text 为url value: CrawlDatum
reduce :InjectReducer
对一个key 的value,设置状态,如果value中的CrawlDatum 如果状态是CrawlDatum.STATUS_INJECTED 则设置状态为CrawlDatum.STATUS_DB_UNFETCHED
里面的多值去重复,否则不设置状态,使用当前的状态,如果存在多值,如果有状态不是CrawlDatum.STATUS_INJECTED,使用这个状态,否则使用 CrawlDatum.STATUS_DB_UNFETCHED,写入
输出目录为 crawldb 下面的先建一个随机数命名的目录
Path newCrawlDb =
new Path(crawlDb,
Integer.toString(new Random().nextInt(Integer.MAX_VALUE)));
CrawlDb.install 替换 current目录
逻辑如下
1 如果crawlDb 下面有old目录删除old目录
2 把crawlDb 下面的current目录变成old目录
3 把job是输出目录变成current目录删除old目录
- 浏览: 78343 次
- 性别:
- 来自: 北京
文章分类
最新评论
nutch源码阅读(5)-Injector总结
- 博客分类:
- nutch
发表评论
-
nutch源码阅读(10)-Fetch
2013-06-26 09:44 1509private static class QueueFee ... -
nutch源码阅读(9)-Fetch
2013-06-25 16:52 1277Fetcher这个模块在Nutch中 ... -
nutch源码阅读(8)-Generator
2013-06-25 07:12 959接着看下最后一个Job ................. ... -
nutch源码阅读(7)-Generator
2013-06-25 07:01 1101继续向下看,第二个Job ................ ... -
nutch源码阅读(6)-Generator
2013-06-25 06:40 879for (i = 0; i < depth; ... -
nutch源码阅读(5)-Generator
2013-05-28 17:32 0Injector是Generator,再回到Crawl看看 ... -
nutch源码阅读(4)-Injector的第二个MapReduce
2013-05-28 09:48 1100JobConf mergeJob = CrawlDb ... -
nutch源码阅读(3)-Injector的Mapper
2013-05-28 09:24 716上篇看到Injector的初始化,这次继续阅读,看看Map ... -
nutch源码阅读(2)-Injector的初始化
2013-05-27 17:28 1509从上篇的Crawl可以看到,抓 ... -
nutch源码阅读(1)-Crawl
2013-05-27 15:45 925org.apache.nutch.crawl ... -
nutch博客
2013-05-13 15:02 0http://blog.csdn.net/amuseme_lu ... -
Failed to set permissions of path问题
2013-05-10 16:42 1109错误信息: Exception in thread &qu ... -
nutch eclipse 缺少的jar
2013-05-09 16:13 680nekohtml http://nekohtml.source ... -
nutch杂记
2013-04-24 07:24 9721. 如何绕过目标站点的robots.txt限制 多数站点 ... -
Nutch相关框架安装使用最佳指南
2013-04-17 07:16 1325转:http://user.qzon ...
相关推荐
apache-nutch-2.3.1-src.tar.gz
nutch配置nutch-default.xml
外网不能访问,故上传,一方面自己备份,一方面也方便大家不能下载的痛苦,只有nutch的源码,没有依赖包,如果需要依赖包,请自行下载
apache-nutch-1.3 的源码包,需要的可以看下
nutch-param-setnutch-param-setnutch-param-setnutch-param-set
lucene+nutch搜索引擎光盘源码(1-8章),一次上传不了那么多所以分卷了。
apache-nutch-2.3.1-src.tar ,网络爬虫的源码, 用ivy2管理, ant runtime 编译 apache-nutch-2.3.1-src.tar ,网络爬虫的源码, 用ivy2管理, ant runtime 编译
Nutch是一款刚刚诞生的完整的开源搜索引擎系统,可以结合数据库进行索引,能快速构建所需系统。Nutch 是基于Lucene的,Lucene为 Nutch 提供了文本索引和搜索的API,所以它使用Lucene作为索引和检索的模块。Nutch的...
Nutch 是一个开源Java 实现的搜索引擎。这里是它的安装包。
apache-nutch-1.6-src.tar.gz 来自APACHE官网,本人亲自测试可以使用。
nutch不用安装,是个应用程序,下载后为nutch-1.6.tar.gz,双击桌面上的cygwin快捷方式;执行以下命令: $ cd D:/Downloads/Soft $ tar zxvf nutch-1.0.tar.gz 在e盘下面出现nutch-0.9文件夹说明解压成功了.然后环境...
Nutch 1.2 学习笔记,讲的比较清楚的文档
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。包含nutch-1.5.1的源码
apache-nutch-1.4-bin.tar.gz.part2
学习nutch 源码解读 轻松入门 搭建自己的nutch搜索引擎
nutch1.6源码,直接从官网也可以下
nutch-1.0-dev.jar nutch devlope
apache-nutch-2.3-src.zip来自APACHE官方网站,亲自测试可以使用。
好用的爬虫工具,刚发布不久的新版本 nutch是网络搜索及信息提取中使用得最广泛的网络爬虫工具 仅仅使用简单的配置就可以实现强大的爬取信息功能
nutch_src 源码 tar—zip格式