码迷,mamicode.com
首页 > 其他好文 > 详细

[Nutch]Nutch抓取过程中生成的目录内容分析

时间:2016-04-29 19:19:52      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

上一篇博文中有和大家介绍了nutch爬虫抓取数据的整个过程,爬虫一般会抓取到很多的内容,那么这些内容都存放到什么地方了呢?其实nutch在抓取的过程中会产生很多的目录,会把抓到的内容分别保存到不同的目录之中。那么,这些目录的结构的什么样的?每个目录里面又保存了哪些内容呢?本篇博文将为你揭晓。

从上一篇博文我们可以知道,nutch爬虫在执行数据抓取的过程中,在data目录下面有crawldb和segments两个目录:
技术分享

下面我们对这两个目录里面的内容做详细的介绍:

1. crawldb

crawldb里面存储的是爬虫在抓取过程中的所有的URL,里面也有两个目录:current和old。
技术分享
之前已经抓取过的url放到old目录中,当前需要执行的放到current目录里面。

在current目录下面有一个文件夹part-0000,如果是deploy模式的分布式方式,在这个目录下会有相关的其他一些目录,如:part-0001,part-0002等。在part-0000下面也有两个目录:data和index。
技术分享
这个是hadoop的自身文件格式,其中

  1. data存放hadoop的所有的表库;
  2. index主要存放一些简单的索引,用于加快和方便查找。

2. segments

在segments目录下面,nutch没运行一个抓取周期,都会在segments目录下面生成一个文件夹:
技术分享
上一篇博文里面我们在运行抓取的时候带的参数的depth是设置为3:

nohup bin/nutch crawl urls -dir data -depth 3 -threads 100 &

所以在这个命令运行完成之后,会生成3个目录,这3个目录都是以当前的时间作为标识。

在每个文件夹下面都存在6个子文件夹:
技术分享

从上一篇博文里面的第4小结可以看出nutch爬虫抓取数据的整个过程:
技术分享
而从这个图里面,也可以看出,segments目录下面的每个文件夹中的6个子文件夹都在Segment N里面,并且每个文件夹都与nutch爬虫抓取的4个过程有着相当紧密的联系。

从上图里面可以看出:
1. crawl_generate文件夹是nutch爬虫在执行第1个过程generator的时候产生的。
2. crawl_fetch和content文件夹都是nutch爬虫在执行第2个过程Fetcher的时候产生的。其中:
(1) content文件里里面保存的就是nutch爬虫抓取的网页的源代码的二进制的内容。
(2)crawl_fetch是每个url的抓取状态:成功抓取、抛出异常或者是其他的各种各样的状态。
3. crawl_parse、parse_data和parse_text是nutch爬虫在执行第3个过程parse segment的时候 产生的。其中:
(1)crawl_parse 是每个url的解析状态。有解析成功和解析失败。
(2)parse_data 是保存抓取内容的源数据。
(3)parse_text 是保存抓取内容的文本数据。

等nutch爬虫抓取完成之后,我们可以看到在data目录下面变成了3个目录,多了一个linkdb:
技术分享

3. linkdb

linkdb目录主要存放在连接过程中产生的内容,同样的有一个part-0000目录,在这个目录下面也有data和index两个子目录。
技术分享

[Nutch]Nutch抓取过程中生成的目录内容分析

标签:

原文地址:http://blog.csdn.net/kandy_ye/article/details/51233043

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!