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目录
- 浏览: 80788 次
- 性别:
- 来自: 北京
文章分类
最新评论
发表评论
-
nutch源码阅读(10)-Fetch
2013-06-26 09:44 1547private static class QueueFee ... -
nutch源码阅读(9)-Fetch
2013-06-25 16:52 1304Fetcher这个模块在Nutch中 ... -
nutch源码阅读(8)-Generator
2013-06-25 07:12 984接着看下最后一个Job ................. ... -
nutch源码阅读(7)-Generator
2013-06-25 07:01 1131继续向下看,第二个Job ................ ... -
nutch源码阅读(6)-Generator
2013-06-25 06:40 909for (i = 0; i < depth; ... -
nutch源码阅读(5)-Generator
2013-05-28 17:32 0Injector是Generator,再回到Crawl看看 ... -
nutch源码阅读(4)-Injector的第二个MapReduce
2013-05-28 09:48 1134JobConf mergeJob = CrawlDb ... -
nutch源码阅读(3)-Injector的Mapper
2013-05-28 09:24 744上篇看到Injector的初始化,这次继续阅读,看看Map ... -
nutch源码阅读(2)-Injector的初始化
2013-05-27 17:28 1531从上篇的Crawl可以看到,抓 ... -
nutch源码阅读(1)-Crawl
2013-05-27 15:45 952org.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 1131错误信息: Exception in thread &qu ... -
nutch eclipse 缺少的jar
2013-05-09 16:13 705nekohtml http://nekohtml.source ... -
nutch杂记
2013-04-24 07:24 9951. 如何绕过目标站点的robots.txt限制 多数站点 ... -
Nutch相关框架安装使用最佳指南
2013-04-17 07:16 1372转:http://user.qzon ...
相关推荐
5. **配置文件**:如 `conf/nutch-default.xml` 和 `conf/nutch-site.xml`,分别包含 Nutch 的默认配置和用户自定义配置。 6. **抓取策略**:Nutch 支持基于链接的抓取策略,如 PR(PageRank)和 TF-IDF(Term ...
### Nutch 1.2 源码阅读深入解析 #### Crawl类核心作用与流程概览 在深入了解Nutch 1.2源码之前,我们先明确Nutch的架构和工作流程。Nutch作为一款开源搜索引擎框架,其功能涵盖网页抓取、索引构建以及查询处理。...
这个源码包 "apache-nutch-1.3-src.tar.gz" 和 "nutch-1.3.tar.gz" 包含了 Nutch 1.3 的源代码和编译后的二进制文件,对于开发者和研究者来说是非常有价值的资源。 **Nutch 概述** Nutch 是基于 Java 开发的,遵循 ...
Nutch-1.9 是一个开源的网络爬虫软件,被广泛用于数据挖掘、搜索引擎构建以及网络信息提取。它的最新版本提供了许多改进和优化,使得它成为开发者和研究者手中的利器。Nutch的设计目标是易用性和可扩展性,允许用户...
在`apache-nutch-2.2.1`这个压缩包中,你将找到以下关键组成部分: 1. **源代码结构**:Nutch 的源代码通常分为几个主要模块,包括`conf`(配置文件)、`bin`(脚本和可执行文件)、`src`(源代码)以及`lib`(库...
在这个"apache-nutch-1.4-bin.tar.gz"压缩包中,包含了运行 Nutch 的所有必要组件和配置文件,适合初学者和开发者快速部署和实验。 **Nutch 的核心组成部分:** 1. **爬虫(Spider)**:Nutch 的爬虫负责在网络中...
"apache-nutch-1.4-src.zip"是Nutch源码的zip压缩版本,用户可以直接解压并访问其中的源代码。 要获取和解压这些源码,你可以使用各种工具,如在Linux或Mac系统中使用命令行的tar和unzip命令,或者在Windows中使用...
nutch配置nutch-default.xml
在“apache-nutch-1.7-src.tar.gz”这个压缩包中,你将获得Nutch 1.7的源代码,这使得开发者可以深入了解其工作原理,并对其进行定制和扩展。解压后的文件夹“apache-nutch-1.7”包含了所有必要的组件和配置文件。 ...
- **Java编程**:源码阅读和开发需要基本的Java编程技能,特别是对多线程和网络编程的理解。 - **Ant构建工具**:掌握如何使用Ant来构建、测试和部署Nutch项目。 通过深入研究Nutch 1.6源码,你可以学习到如何设计...
Nutch-1.5.1源码是Apache Nutch项目的一个重要版本,它是一个高度可扩展的、开源的网络爬虫和全文搜索引擎框架。Nutch最初由Doug Cutting创建,后来成为了Hadoop项目的一部分,因为其在大数据处理和分布式计算方面的...
《lucene+nutch搜索引擎光盘源码(1-8章)》是一套全面解析Lucene和Nutch搜索引擎技术的源代码教程,涵盖了从基础到进阶的多个层面。这套资源包含8个章节的源码,由于文件大小限制,被分成了多个部分进行上传。 ...
apache-nutch-2.3.1-src.tar ,网络爬虫的源码, 用ivy2管理, ant runtime 编译 apache-nutch-2.3.1-src.tar ,网络爬虫的源码, 用ivy2管理, ant runtime 编译
- 初始化Nutch的配置文件,根据需求修改`conf/nutch-site.xml`。 - 运行Nutch的基本命令,如抓取种子URL (`bin/nutch inject`), 分析网页 (`bin/nutch fetch`), 解析内容 (`bin/nutch parse`), 更新数据库 (`bin/...
3. **配置Nutch**:修改`conf/nutch-site.xml`等配置文件,设置爬虫的启动参数,如抓取范围、URL过滤规则等。 4. **创建数据库**:Nutch通常使用Hadoop HDFS作为数据存储,因此需要设置Hadoop环境,并创建相应的...
Nutch是一款刚刚诞生的完整的开源搜索引擎系统,可以结合数据库进行索引,能快速构建所需系统。Nutch 是基于Lucene的,Lucene为 Nutch 提供了文本索引和搜索的API,所以它使用Lucene作为索引和检索的模块。Nutch的...
4. **配置与部署**:解压 "apache-nutch-1.9" 文件后,需要根据你的环境配置`conf/nutch-site.xml`文件,设置包括抓取间隔、并发度、存储路径等参数。同时,可能还需要配置`conf/regex-urlfilter.txt`和`conf/...
1. **源码目录结构**:解压后的apache-nutch-2.3目录包含了源代码、配置文件、构建脚本等。主要目录有`src/main/`,其中`src/main/java`存放Java源码,`src/main/resources`存储配置文件,`src/main/webapp`包含Web...
Nutch 1.6 是一个开源的网络爬虫项目,由Apache软件基金会开发,主要用于抓取、索引和搜索Web内容。...通过阅读和研究源码,可以提升对这些技术的理解,并能为开发自己的爬虫或搜索引擎项目打下坚实基础。