nutch的抓取目录解释

来源:互联网 发布:php array remove key 编辑:程序博客网 时间:2024/05/16 09:59

转载自:http://blog.csdn.net/javaman_chen/article/details/7180076

1、Apache Nutch

   Apache Nutch是一个用于网络搜索的开源框架,它提供了我们运行自己的搜索引擎所需的全部工具,包括全文搜索和Web爬虫。

1.1、Nutch的组件结构

WebDB:存储网页数据和连接信息

Fetch lists:将WebDB所存储的连接分成多个组,来用于分布式检索

Fetchers:检索Fetch list中的内容并下载到本地,共有两项输出:分别是连接的update

信息和内容content

Updates:更新WebDB的页面检索状态

WebDB、updates、fetch lists和fetchers组成循环结构,不断运行下去,来确保所得到的Web镜像是最新的

Content:界面内容,获取内容之后,Nutch便可以根据它来创建索引并执行查询操作

Indexers:对目标Content创建索引,当索引内容较大时,可把索引划分成多个索引片段,然后分配给不同的seracher实现并行检索

Searchers:实现查询功能的同时也会缓存content

Webservers:有两种角色:

1处理用户的交互请求(Nutch Search Client)

2从searchers中获取查询结果(HTTP Server)

注:fetchers和searchers两个节点所对应的操作可放到分布式环境(hadoop)中去完成

创建索引及查询的操作可通过solr框架来实现

1.2、Nutch的数据结构:

Nutch数据包含3个目录结构,分别是:

1、Crawldb:用于存储Nutch将要检索的url信息,以及检索状态(是否检索、何时检索)

2、Linkdb:用于存储每一个url所包含的超链接信息(包括锚点)

3、Segments:一组url的集合,他们作为一个检索单元,可用于分布式检索

Segment目录包含以下子目录信息:

(1)   crawl_generate:定义将要检索的url集合(文件类型为SequenceFile)

(2)   crawl_fetch:存储每一个url的检索状态(文件类型为MapFile)

(3)   content:存储每一个url所对应的二进制字节流(文件类型为MapFile)

(4)   parse_text:存储每一个url所解析出的文本内容(文件类型为MapFile)

(5)   parse_data:存储每一个url所解析出的元数据(文件类型为MapFile)

(6)   crawl_parse:用于及时更新crawldb中的内容(如要检索的url已不存在等情况)--文件类型为SequenceFile

注:结合Nutch的数据结构和组件结构来看,crawldb相当于WebDB,而segment相当于是fetchlists.

分布式crawl过程中,每个MapReduce Job都会生成一个segment,名称以时间来命名

0 0
原创粉丝点击