- 浏览: 1169473 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 2615nutch-1.2结合hadoop分布式搜索。 1、网上关于 ... -
nutch-1.x分布式索引指定
2011-07-04 17:15 12201、nutch-1.x中在crawl.java中。最后有这么一 ... -
在nuthc中加入中文分词
2011-05-15 11:41 554nutch实用的分词是默认的,对中文支持的不是很好。 网上有 ... -
nutch1.2中加入中文分词以及搜索错误解决
2011-03-02 12:15 1386在nutch当中加入中文分词。这里我使用的IK_Analyze ... -
使用ant编译时错误:Specify at least one source--a file or resource
2011-02-22 11:12 2425将命令环境切换到Nutch目录下,执行ant命令。出现如下错误 ... -
readdb导致fetch job中断的问题
2011-02-16 13:39 1596Nutch readdb命令可以用来统计目前crawldb库里 ... -
Nutch fetch job中时间的分配比例
2011-02-16 13:38 1283下面是nutch fetch job中map shuffle ... -
nutch UI 多台机子部署有关jetty配置servlet的问题
2010-01-18 17:35 2423我们jetty是一个小型的web服务器,可以嵌入到程序当中去, ... -
nutch中plugin.folders的配置
2009-12-21 18:07 2388今天在公司做nutch的调试时,犯了一个低级的错误,在这里记录 ... -
把另外的一个项目加入了nutch中来
2009-12-20 23:59 1035周末在家闲的慌,把在公司搞的nutch拿回来在家里试着做了下, ... -
今天来用一个例子来详细讲解下nutch当中到底是如何自定义插件的
2009-12-17 10:29 1607接上面一篇,今天来用一个例子来详细讲解下nutch当中到底是如 ... -
nutch plugin详细分析
2009-12-16 18:06 1357当某个插件需要被加载时, Nutch 会加载所有插件的相关接口 ... -
nutch plugin的流程以及如何自定义plugin
2009-12-16 18:04 1950PluginRepository 是plugin的入口,保存了 ... -
如何读取nutch抓取数据
2009-12-16 17:43 3563如何读取nutch抓取数据 1.首先nutch的配置已经在博 ... -
Nutch1.0 Ui启动在tomcat中的配置
2009-12-07 14:09 1316<!-- @pa ... -
nutch如何才能抓取到动态的url
2009-11-25 15:27 5296http://www.tianya.cn/new/Tianya ... -
配置完成nutch容易出现的错误
2009-11-25 11:50 24511.1.2 运行crawl报错Job failed Ex ... -
在eclipse中如何配置nutch1.0
2009-11-25 11:44 1388<1>: 首先从http://apache.eto ... -
cygwin配置说明
2009-11-21 00:15 2328开始,一步一步来:了解Cygwin的人都知道,就是到 : ht ... -
第一次使用nutch
2009-11-19 23:13 1223Nutch 是一个基于Lucene开发的诞生不久的开放源代码( ...
相关推荐
描述Nutch的工作流程,介绍Nutch对页面获取、分析、建立索引的过程。
Nutch爬虫工作流程及文件格式详细分析!!!!!
Nutch爬虫工作流程及文件格式详细分析,文档不大
1.1 Nutch 基本原理 1.1.1 Nutch 基本组成 1.1.2 Nutch 工作流程 1.2 Nutch 流程详解 1.2.1 Nutch 数据流程 1.2.2 Nutch 流程分析
4.2 nutch工作流程.....23 5. nutch工作流程分析...25 5.1 爬虫...25 5.1.1 工作策略...25 5.1.2 工作流程分析....25 5.1.3 其它..27 5.2 索引...27 5.2.1 索引主要过程....27 5.2.2 工作流程分析....28 5.2.3 倒排...
nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据
里面描述了Nutch的基本流程,Nutch与eclipse的结合,Nutch与Solr的结合
nutch 搜索模块流程 详细简述nutch搜索详细过程
资源名称:Nutch相关框架视频教程资源目录:【】Nutch相关框架视频教程1_杨尚川【】Nutch相关框架视频教程2_杨尚川【】Nutch相关框架视频教程3_杨尚川【】Nutch相关框架视频教程4_杨尚川【】Nutch相关框架视频教程5_...
学习nutch 源码解读 轻松入门 搭建自己的nutch搜索引擎
eclipse配置nutch,eclipse配置nutch
nutch入门教程,nutch入门安装流程
Nutch 高级 插件是开发 多Nutch内部的流程有很好的解释和说明
nutch使用&Nutch;入门教程 pdf
nutcher 是 Apache Nutch 的中文教程,在... Nutch流程控制源码详解(bin/crawl中文注释版) Nutch教程——URLNormalizer源码详解 Nutch参数配置——http.content.limit 文档截图:
Nutch诞生于2002年8月,是Apache旗下的一个用Java实现的开源搜索引擎项目,自Nutch1.2版本之后,Nutch已经从搜索引擎演化为网络爬虫,接着Nutch进一步演化为两大分支版本:1.X和2.X,这两大分支最大的区别在于2.X对...
nutch的基本命令,让你更容易操作nutch,使其在你的掌握之中
Nutch搜索引擎·Nutch简单应用(第3期) 1.1 Nutch 命令详解 1.2 Nutch 简单应用
nutch1.2测试文档
nutch插件,安装nutch插件,mysql与nutch