- 浏览: 1183377 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (350)
- Ajax研究 (2)
- javascript (22)
- struts (15)
- hibernate (12)
- spring (8)
- 我的生活 (28)
- jsp (2)
- 我的随笔 (84)
- 脑筋急转弯 (1)
- struts2 (2)
- ibatis (1)
- groovy (1)
- json (4)
- flex (20)
- Html Css (5)
- lucene (11)
- solr研究 (2)
- nutch (25)
- ExtJs (3)
- linux (6)
- 正则表达式 (2)
- xml (1)
- jetty (0)
- 多线程 (1)
- hadoop (40)
- mapreduce (5)
- webservice (2)
- 云计算 (8)
- 创业计划 (1)
- android (8)
- jvm内存研究 (1)
- 新闻 (2)
- JPA (1)
- 搜索技术研究 (2)
- perl (1)
- awk (1)
- hive (7)
- jvm (1)
最新评论
-
pandaball:
支持一下,心如大海
做有气质的男人 -
recall992:
山东分公司的风格[color=brown]岁的法国电视[/co ...
solr是如何存储索引的 -
zhangsasa:
-services "services-config ...
flex中endpoint的作用是什么? -
来利强:
非常感谢
java使用json所需要的几个包 -
zhanglian520:
有参考价值。
hadoop部署错误之一:java.lang.IllegalArgumentException: Wrong FS
(一):Nutch的工作流程:
Crawdb、linkdb 是web link目录,存放url及url的互联关系,作为爬行与重新爬行的依据。 segments 是主目录,存放抓回来的网页。页面内容有bytes[]的raw content 和 parsed text的形式。nutch以广度优先的原则来爬行,因此每爬完一轮会生成一个segment目录。 index 是lucene的索引目录,是indexes目录里所有index合并后的完整索引,注意索引文件只对页面内容进行索引,没有进行存储,因此查询时要去访问segments目录才能获得页面内容。 |
(一):流程综述: 【1】:inject start urls 注入抓取URL。因为Nutch的抓取程序是要抓取网页,而定位到某个网页需要制定一个URL,所以Nutch按照广度遍历策略进行抓取,会根据一开始指定的URL,也可以是一个URLS集合,以此基础进行抓取工作。 【2】:generate segment 生成segment。Nutch抓取程序需要抓取到很多的页面,那么具体是哪些页面的?当然,在互联网上是通过URL来定位的。这一步骤主要是对上一步提交的URL集合进行分析,确定抓取任务的详细信息。 【3】fetch list 分析提交的URL集合之后,建立一个抓取任务列表。在以后的抓取工作中就可以根据预处理的此列表进行工作了。 【4】:www 这是通过访问万维网(www),实现抓取工作。 【5】:fetch content 开始根据前面生成的抓取任务列表中指定的URL对应的页面,这时候开始抓取工作了。 【6】:fetched content 需要将抓取到的这些页面文件存放到指定的位置,这些页面文件可以是经过简单预处理以后而被存储到文件系统中,也可以是原生的网页文件,以备后继流程基于这些文件来进一步处理,比如分词,建立索引。 content parser 内容解析器。抓取到的页面文件被提交到这里,实现对页面文件的处理,包括页面文件的分析和处理。 【7】:parse content 当然,我们抓取的数据是结构和内容非常复杂的数据,而我们感兴趣的主要是文件的内容,因为基于关键字检索的搜索引擎的实现,都是根据文本内容来实现的。 【8】:parsed text & data 通过content parser解析器,最终获取到的就是文本内容和其它一些可能需要用到的数据。有了这些可以识别的文本内容和数据,就可以基于此来建立索引库,而且需要将本次抓取任务的详细信息登录到crawlDB,为下次抓取任务提供有用的信息(比如:避免重复抓取相同的URL指定的页面)。 因此接下来分为两个方向:一个是索引,一个是更新crawlDB并继续执行抓取任务: 【9】:indexing 这是一个索引的过程,对分析处理完成并提交的文本及其数据建立索引,通过索引文件就可以实现信息的检索功能了。建立索引过程中,由于是基于Lucene的,所以用到了Analyzer分析器,对预处理的文件进行分析、过滤、分词等等,最后将写入到索引库,供搜索程序工作使用。 【10】:update crawlDB with new extracted urls 根据网页分析处理获取到的信息,更新crawlDB(爬行数据库),并根据提取到的抓取任务已经注入的URLs循环执行抓取任务。 |
(二):Nutch工作流程总结 上面的流程已经分析地非常透彻了,参考一些资料做个总结吧。通过下面总结的工作流程,理清思路,很有帮助的,如下所示,Nutch的工作流程描述: 抓取程序工作流程 (1.) 建立初始URL集 (2.) 将URL集注入crawldb数据库---inject 这一步骤,上面的图中没有涉及到。既然需要维护一个crawlDB,那么在任何时候只要与抓取任务有关的而且是有用的信息都会被写入crawlDB的 (3.) 根据crawldb数据库创建抓取列表---generate (4.) 执行抓取,获取网页信息---fetch (5.) 更新数据库,把获取到的页面信息存入数据库中---updatedb (6.) 重复进行3~5的步骤,直到预先设定的抓取深度。---这个循环过程被称为“产生/抓取/更新”循环 (7.) 根据sengments的内容更新linkdb数据库---invertlinks (8.) 建立索引---index 搜索程序工作流程 (1.) 用户通过用户接口进行查询操作 (2.) 将用户查询转化为lucene查询 (3.) 从索引库中提取满足用户检索需求的结果集 (4.) 返回结果 |
评论
还有个问题,如果要抓取多个URL的话,NUTCH的工作线程是怎么安排的呢?
抓取什么内容,主要看业务的方向。大部分的貌似都是网页中的部分内容。
如果我们想抓取的网站仅仅限于有限多个网站的内容,而不像GOOGLE那样是全网抓取,那么有可能对存储的要求比较低,事实上我们也仅仅只需要这样的搜索引擎
单机运行NUTCH和多机并行运行NUTCH,在搜索效率和存储空间上面有什么比较显著的区别吗?
谢谢。。。我还想了解下NUTCH具体的分布式应用方式
发表评论
-
nutch-1.2结合hadoop分布式搜索
2011-07-13 10:50 2658nutch-1.2结合hadoop分布式搜索。 1、网上关于 ... -
nutch-1.x分布式索引指定
2011-07-04 17:15 12701、nutch-1.x中在crawl.java中。最后有这么一 ... -
在nuthc中加入中文分词
2011-05-15 11:41 599nutch实用的分词是默认的,对中文支持的不是很好。 网上有 ... -
nutch1.2中加入中文分词以及搜索错误解决
2011-03-02 12:15 1430在nutch当中加入中文分词。这里我使用的IK_Analyze ... -
使用ant编译时错误:Specify at least one source--a file or resource
2011-02-22 11:12 2458将命令环境切换到Nutch目录下,执行ant命令。出现如下错误 ... -
readdb导致fetch job中断的问题
2011-02-16 13:39 1653Nutch readdb命令可以用来统计目前crawldb库里 ... -
Nutch fetch job中时间的分配比例
2011-02-16 13:38 1330下面是nutch fetch job中map shuffle ... -
nutch UI 多台机子部署有关jetty配置servlet的问题
2010-01-18 17:35 2463我们jetty是一个小型的web服务器,可以嵌入到程序当中去, ... -
nutch中plugin.folders的配置
2009-12-21 18:07 2421今天在公司做nutch的调试时,犯了一个低级的错误,在这里记录 ... -
把另外的一个项目加入了nutch中来
2009-12-20 23:59 1087周末在家闲的慌,把在公司搞的nutch拿回来在家里试着做了下, ... -
今天来用一个例子来详细讲解下nutch当中到底是如何自定义插件的
2009-12-17 10:29 1658接上面一篇,今天来用一个例子来详细讲解下nutch当中到底是如 ... -
nutch plugin详细分析
2009-12-16 18:06 1389当某个插件需要被加载时, Nutch 会加载所有插件的相关接口 ... -
nutch plugin的流程以及如何自定义plugin
2009-12-16 18:04 1987PluginRepository 是plugin的入口,保存了 ... -
如何读取nutch抓取数据
2009-12-16 17:43 3599如何读取nutch抓取数据 1.首先nutch的配置已经在博 ... -
Nutch1.0 Ui启动在tomcat中的配置
2009-12-07 14:09 1348<!-- @pa ... -
nutch如何才能抓取到动态的url
2009-11-25 15:27 5346http://www.tianya.cn/new/Tianya ... -
配置完成nutch容易出现的错误
2009-11-25 11:50 24801.1.2 运行crawl报错Job failed Ex ... -
在eclipse中如何配置nutch1.0
2009-11-25 11:44 1427<1>: 首先从http://apache.eto ... -
cygwin配置说明
2009-11-21 00:15 2358开始,一步一步来:了解Cygwin的人都知道,就是到 : ht ... -
第一次使用nutch
2009-11-19 23:13 1250Nutch 是一个基于Lucene开发的诞生不久的开放源代码( ...
相关推荐
本文将详细分析Nutch爬虫的工作流程和涉及的主要文件格式。 首先,Nutch爬虫(Crawler)的核心任务是抓取互联网上的网页,并构建一个链接结构的数据库,称为WebDB。WebDB包含两类实体:Page和Link。Page实体记录了...
入门教程”将带你深入理解Nutch的基本概念、工作流程以及如何实际操作它来执行网络爬取任务。 一、Nutch简介 Nutch是一个基于Java的开源搜索引擎,其主要功能包括网页抓取、链接分析、网页排名和索引。Nutch的设计...
Nutch基本原理分析包括Nutch的基本组成和工作流程。它解释了Nutch如何组成、如何工作以及工作流程的细节。 工作流程分析部分进一步深入讲解了Nutch的各个组成部分,包括爬虫、索引、搜索和分析等。爬虫部分讨论了...
- **学习源码**:深入阅读Nutch的源码,理解其内部机制和工作流程。 - **实践项目**:尝试建立自己的小规模搜索引擎项目,应用Nutch解决实际问题。 5. **参考资料** - 官方文档:Apache Nutch官网提供了详细的...
因此,利用Eclipse作为开发工具,可以简化Nutch的配置流程,提供一个友好的图形界面来管理项目和代码,同时利用其强大的调试功能,帮助开发者快速定位和解决问题。 ### 二、Eclipse配置Nutch的步骤详解 #### 步骤1...
标签“源码”意味着这个学习资料可能涉及Nutch的源代码分析,这对于深入理解Nutch的工作原理至关重要。通过阅读源码,学习者可以了解Nutch如何实现URL的发现、页面下载、解析、分词、索引等关键功能。此外,源码分析...
Nutch基本原理分析 **4.1 Nutch的基本组成** Nutch由多个核心组件构成,包括爬虫(负责网页抓取)、索引器(负责建立和更新索引)、以及搜索服务(负责响应用户的搜索请求)。 **4.2 Nutch工作流程** Nutch的...
2. **《nutch入门学习.pdf》**:这可能是更深入的学习资料,可能包含实战案例和高级特性的讲解,帮助进阶者理解Nutch的内在工作机制。 **五、实践操作** 学习Nutch通常包括以下步骤: 1. **环境准备**:安装Java...
这个“Nutch入门教程 高清 带书签”的资源,很显然是为了帮助初学者快速理解并掌握Nutch的基本操作和核心概念。下面,我们将深入探讨Nutch的相关知识点。 一、Nutch简介 Nutch是一个强大的Web爬虫框架,它提供了从...
通过学习和研究Nutch 2.2.1的源码,你可以了解到网络爬虫的基本工作流程,理解如何处理大量网页数据,以及如何使用Hadoop进行分布式计算。这对于想要从事大数据处理、搜索引擎开发或网络信息采集的开发者来说,是一...
Nutch搜索引擎的基本原理和组成是互联网搜索引擎开发领域的重要知识点。...在理解Nutch的基本原理和工作流程后,开发者可以更好地掌握其运行机制,进而利用Nutch进行更加深入的搜索引擎开发和研究。
1. **网络爬虫的设计与实现**:理解网页抓取的基本流程,包括URL管理、下载策略和网页解析。 2. **大规模文本处理**:了解如何使用Hadoop进行分布式计算,处理大量网页数据。 3. **全文检索技术**:深入学习Apache ...
Nutch的架构图可以帮助我们理解其工作流程和组件间的交互,这对于学习和入门Nutch至关重要。 首先,让我们从"Injector.png"开始,这个组件是Nutch工作流程的起点。Injector的作用是将初始URL种子注入到CrawlDB...
这个"nutch工具包"包含了Nutch 1.5的源代码,对于想要深入理解Nutch工作原理或者进行二次开发的人员来说非常有价值。 1. **Nutch 概述**:Nutch 是基于Java开发的,它集成了Hadoop框架,用于分布式爬虫任务。Nutch...
通过学习和研究Nutch源码,开发者不仅可以了解网络爬虫的工作流程,还可以学习到分布式计算、文本处理、搜索算法等多方面的知识。这对于构建自己的搜索引擎系统,或者在大数据领域进行深度开发有着极大的帮助。同时...
通过深入了解和掌握Nutch插件开发流程,结合Mysql数据存储方案,开发者可以轻松定制和扩展Nutch的功能,满足各种复杂的需求。无论是对于个人开发者还是企业级应用,Nutch都提供了丰富的可能性和无限的潜力。
在这个文档中,我们将深入探讨Nutch的数据集基本组成以及其工作流程。 **一、Nutch数据集的基本组成** 1. **Segments**: Nutch将抓取的网页数据存储在称为Segment的文件夹中,每个Segment包含了一组在特定时间抓取...
6. Nutch基本原理分析 Nutch的基本组成和工作流程被详细讲解,包括爬虫的策略和流程、索引的主要过程、倒排索引等原理性内容。 7. Nutch工作流程分析 工作流程分析进一步深入到爬虫的工作策略和流程、索引过程、...