`
cocoIT
  • 浏览: 51047 次
  • 性别: Icon_minigender_1
  • 来自: 福建
文章分类
社区版块
存档分类
最新评论

Nutch Crawl执行过程解析

 
阅读更多
为了研究怎么解决recrawl的问题,今天仔细观察了一下nutch crawl的每一步具体发生了什么。

==============准备工作======================
(Windows下需要cygwin)
从SVN check out代码;
cd到crawler目录;

==============inject==========================

$ bin/nutch inject crawl/crawldb urls
Injector: starting
Injector: crawlDb: crawl/crawldb
Injector: urlDir: urls
Injector: Converting injected urls to crawl db entries.
Injector: Merging injected urls into crawl db.
Injector: done

crawldb目录在这时生成。

查看里面的内容:
$ bin/nutch readdb crawl/crawldb -stats
CrawlDb statistics start: crawl/crawldb
Statistics for CrawlDb: crawl/crawldb
TOTAL urls: 1
retry 0: 1
min score: 1.0
avg score: 1.0
max score: 1.0
status 1 (db_unfetched): 1
CrawlDb statistics: done

===============generate=========================

$bin/nutch generate crawl/crawldb crawl/segments
$s1=`ls -d crawl/segments/2* | tail -1`
Generator: Selecting best-scoring urls due for fetch.
Generator: starting
Generator: segment: crawl/segments/20080112224520
Generator: filtering: true
Generator: jobtracker is 'local', generating exactly one partition.
Generator: Partitioning selected urls by host, for politeness.
Generator: done.

segments目录在这时生成。但里面只有一个crawl_generate目录:
$ bin/nutch readseg -list $1
NAME GENERATED FETCHER START FETCHER END
FETCHED PARSED
20080112224520 1 ? ? ? ?

crawldb的内容此时没变化,仍是1个unfetched url。

=================fetch==============================

$bin/nutch fetch $s1
Fetcher: starting
Fetcher: segment: crawl/segments/20080112224520
Fetcher: threads: 10
fetching http://www.complaints.com/directory/directory.htm
Fetcher: done

segments多了些其他子目录。
$ bin/nutch readseg -list $s1
NAME GENERATED FETCHER START FETCHER END
FETCHED PARSED
20080112224520 1 2008-01-12T22:52:00 2008-01-12T22:52:00
1 1

crawldb的内容此时没变化,仍是1个unfetched url。

================updatedb=============================
$ bin/nutch updatedb crawl/crawldb $s1
CrawlDb update: starting
CrawlDb update: db: crawl/crawldb
CrawlDb update: segments: [crawl/segments/20080112224520]
CrawlDb update: additions allowed: true
CrawlDb update: URL normalizing: false
CrawlDb update: URL filtering: false
CrawlDb update: Merging segment data into db.
CrawlDb update: done

这时候crawldb内容就变化了:
$ bin/nutch readdb crawl/crawldb -stats
CrawlDb statistics start: crawl/crawldb
Statistics for CrawlDb: crawl/crawldb
TOTAL urls: 97
retry 0: 97
min score: 0.01
avg score: 0.02
max score: 1.0
status 1 (db_unfetched): 96
status 2 (db_fetched): 1
CrawlDb statistics: done

==============invertlinks ==============================
$ bin/nutch invertlinks crawl/linkdb crawl/segments/*
LinkDb: starting
LinkDb: linkdb: crawl/linkdb
LinkDb: URL normalize: true
LinkDb: URL filter: true
LinkDb: adding segment: crawl/segments/20080112224520
LinkDb: done

linkdb目录在这时生成。

===============index====================================
$ bin/nutch index crawl/indexes crawl/crawldb crawl/linkdb crawl/segments/*
Indexer: starting
Indexer: linkdb: crawl/linkdb
Indexer: adding segment: crawl/segments/20080112224520
Indexing [http://www.complaints.com/directory/directory.htm] with analyzer
org
apache.nutch.analysis.NutchDocumentAnalyzer@ba4211 (null)
Optimizing index.
merging segments _ram_0 (1 docs) into _0 (1 docs)
Indexer: done

indexes目录在这时生成。

================测试crawl的结果==========================
$ bin/nutch org.apache.nutch.searcher.NutchBean complaints
Total hits: 1
0 20080112224520/http://www.complaints.com/directory/directory.htm
Complaints.com - Sitemap by date ?Complaints ...

参考资料:
【1】Nutch version 0.8.x tutorial
http://lucene.apache.org/nutch/tutorial8.html
【2】 Introduction to Nutch, Part 1: Crawling
http://today.java.net/lpt/a/255

出处:http://xruby.iteye.com/blog/258128

分享到:
评论

相关推荐

    nutch crawl代码解析

    本文将解析 Nutch-0.9 版本中的 `Crawl` 类,它是 Nutch 抓取流程的起点。 `Crawl` 类位于 `org.apache.nutch.crawl` 包中,它包含了启动 Nutch 抓取程序的主要逻辑。`main` 函数是整个程序的入口点,它接收命令行...

    分析Nutch的工作流程

    Nutch的工作流程是一个复杂但高效的过程,它通过一系列精心设计的步骤来完成对互联网内容的抓取、解析和索引。通过上述分析,我们可以看出每个步骤都至关重要,且相互之间紧密关联。从初始URL集合的构建到最终索引的...

    Nutch 1.2源码阅读

    本文将以Nutch 1.2版本为核心,重点解析Crawl类及其在整体流程中的关键地位。 Nutch的工作流程主要包括以下几个阶段:注入(Injector)、生成抓取URL(Generator)、网页抓取(Fetcher)、网页解析(ParseSegment)...

    nutch

    Nutch 还提供了命令行工具,如 `bin/nutch crawl`,用于启动爬虫流程。 **Nutch 入门教程** 《Nutch 入门教程.pdf》这本书籍或文档应该包含了 Nutch 的基础知识、安装配置、使用示例以及常见问题解答等内容。通过...

    nutch 0.9 版(包含war,bin,src可直接部署使用)

    "nutch crawl"是指Nutch的爬取流程,它由一系列步骤组成,包括初始化、抓取、解析、过滤、索引等。Nutch提供的这个文件可能是一组预设的脚本或配置,指导用户如何执行完整的爬取流程。这包括设置爬取种子URL、定义...

    Nutch+solr + hadoop相关框架搭建教程

    Nutch 提供了从互联网抓取网页、解析内容、提取链接到存储索引的完整流程。Nutch 1.2 版本后,它开始使用 Ivy 进行依赖管理,方便构建和集成其他组件。 【Hadoop】 Hadoop 是一个分布式计算框架,用于处理和存储...

    nutch帮助文档;nutch学习 入门

    - **运行Nutch流程**:执行`bin/nutch crawl`命令,依次进行抓取、解析、索引等步骤。 - **使用Solr或Elasticsearch**:Nutch可以将索引数据导出到Solr或Elasticsearch,以实现更强大的搜索功能。 - **学习源码**...

    nutch使用&Nutch;入门教程

    你可以单独运行每个命令,或者通过`bin/crawl`脚本自动化整个过程。 六、Nutch与其他技术的集成 Nutch可以与Solr或Elasticsearch等搜索引擎集成,实现快速高效的搜索功能。此外,还可以与HBase等NoSQL数据库配合,...

    Nutch 1.3 学习笔记

    2. **生成新的抓取URLs**:执行`bin/nutch generate crawldb segments_dir [-force] [-topNN] [-numFetchers numFetchers] [-adddays numDays] [-noFilter] [-noNorm] [-maxNumSegments num]`,此过程会基于已有的...

    基于ApacheNutch和Htmlunit的扩展实现AJAX页面爬虫抓取解析插件nutch-htmlunit.zip

    基于Apache Nutch 1.8和Htmlunit组件,实现对于AJAX加载类型页面的完整页面内容抓取解析。 According to the implementation of Apache Nutch 1.8, we can't get dynamic ...

    Nutch2.3.1 环境搭建

    Nutch2.3.1是Apache Nutch的一个稳定版本,它是一个开源的网络爬虫框架,主要用于抓取、解析和索引互联网上的网页内容。在本文中,我们将深入探讨如何搭建Nutch2.3.1的运行环境,以便进行网页抓取和分析。 **一、...

    Nutch插件开发文档

    为了更好地理解Nutch插件的开发过程,我们需要先了解几个关键的概念: 1. **Pluggable接口**:这是所有扩展点必须实现的一个通用接口,用于确定一个类是否能够作为插件集成到Nutch框架中。该接口定义了插件与Nutch...

    分享一个Nutch入门学习的资料

    `bin/nutch crawl`命令启动抓取流程,包括生成待抓取URL列表(`segments`),执行抓取任务,更新URL状态,并将新抓取的网页存储为段。 8. **解析与索引** Nutch内置了HTML解析器和Tika库,用于提取网页内容。索引...

    nutch2.2.1-src

    5. **启动爬虫**:运行Nutch的`bin/nutch`脚本,执行如`crawl`命令开始爬取过程。 6. **监控和调试**:观察日志文件,跟踪爬虫的运行状态,如有需要,进行问题排查和性能优化。 通过学习和研究Nutch源码,开发者...

    Nutch_的配置文件

    - 当执行`Crawl`类的`main`方法时,首先通过`NutchConfiguration.create()`创建一个配置对象。 - `NutchConfiguration.create()`方法内部,首先创建一个`Configuration`对象,这会加载`hadoop-default.xml`和`hadoop...

    lucene2.4+nutch学习笔记三:lucene 在多个文本文档里找出包含一些关键字的文档

    3. **运行Nutch**:执行Nutch的命令行工具,如`bin/nutch crawl`,启动爬虫流程。 4. **搜索关键词**:Nutch完成索引后,可以通过HTTP接口或API,使用IndexSearcher搜索含有特定关键词的文档。 四、实际应用示例 ...

    Lucene nutch 搜索引擎 开发 实例 源码

    特别地,Nutch中的Crawl和Fetch阶段展示了如何管理URL队列,以及如何决定何时重新抓取网页。 在学习Lucene和Nutch的源码时,你会遇到以下几个关键概念: 1. **分词**:Lucene使用Analyzer对输入文本进行分词,不同...

    Nutch环境搭建文档

    6. 执行Nutch的抓取命令,如`bin/nutch crawl`,根据命令提示进行Web抓取操作。 Nutch的抓取过程通常包括种子URL设置、爬网、解析HTML、提取链接、存储和索引数据等步骤。通过配置Nutch的配置文件,用户可以定制...

    \Lucene Nutch和安装说明文旦

    7. **运行Nutch**: 执行爬虫任务,如`bin/nutch crawl`命令,进行抓取、解析、索引和搜索操作。 **光盘使用说明** “光盘使用说明.DOC”文件可能是针对光盘中提供的资源如何与Lucene和Nutch结合使用的指南。它可能...

    apache-nutch-1.6-src.tar.gz

    主要的源代码文件位于`src/java`目录下,按照包结构组织,例如`org.apache.nutch.crawl`、`org.apache.nutch.indexer`和`org.apache.nutch.parse`等。 2. **配置文件**:在`conf`目录下,有默认的Nutch配置文件,如...

Global site tag (gtag.js) - Google Analytics