nutch抓取数据后生成的文件格式

转载 2012年03月27日 10:55:31



nutch抓取数据后,生成五个文件夹:crawldb、index、indexs、linkdb和segments,这五个文件夹具体存放什么内容,前面文章里有解释,每个文件夹下,最后就是data和index文件

看了一下将segment目录导出文本数据的源码SegmentReader.java,发现要用到MapFile类,而MapFile类中又要用到SequenceFile

MapFile.java类是创建data和index的类,它主要是用SequenceFile.java中的内部类和方法进行读写操作,所以理解SequenceFile类是很重要的

SequeceFile是Hadoop API提供的一种二进制文件支持。这种二进制文件直接将<key, value>对序列化到文件中。

1.nutch爬虫中产生的文件一般存放都是这种结构,按照key进行排序,value存放信息,直接以文本形式打不开,每个文件目录下,都对应一个index和data,这两个文件是必须一起用还是可以分开用呢?

答:为了方便查看nutch抓取数据结果,nutch提供了导出命令,在执行dump命令时,即将数据以文本形式导出:

查看crawldb数据库,导出数据:bin/nutch readdb output/crawldb/ -dump crawldb(导出的地址)

这时候只用到data,可以不用index,index文件就是一个索引,例如:bin/nutch readseg -get  output/segments/20110727060701/  http://www.baidu.com/,这个命令是根据key(这里是http://www.baidu.com)获取value值,会直接将结果以文本形式打在终端,这个时候需要index,是根据它在data中查找value的

“index文件用来存放索引,但是这个索引文件也是一个有序的,这个里面存放的是key和位置信息,但是在data文件中出现的key在这个index中都能找到的,它为了节省空间,实施了每隔一段 key/value建立一条索引,这样在查找的时候,因为是有序的,所以采用2分查找,如果找不到,则返回最后时候的最小的位置信息,这个位置离我们要找的目标是相当近的,然后在data文件的这个位置向前找就可以很快找到了” ----详见参考资料1

nutch的导出命令详见参考资料3

2.因为nutch中产生的文件都是SequeceFile的,所以准备直接用它来作为输入,转成mahout的输入向量,用mahout提供的将SequeceFile文件转向量或导出文本时报错

把parse_text传到hdfs上,用mahout seq2sparse --input /user/temp --ouput /user/test/testdata 命令,提示报错,说找不到nutch.parse.parseText包

用mahout seqdumper -s /tmp/seq/data,也是提示没有nutch.parse.ParseText类,其中data是nutch的parse_text中的data

seqdumper是用来将SequenceFile格式转成可看的文本格式的

seq2sparse 是用来将SequeceFile文件转成mahout向量文件的

难道说,mahout输入向量的生成必须是mahout命令转化的SequeceFile文件才行?

3.mahout kmeans输入参数

前面弄错了一个问题,那就是mahout入门测试的例子中,用的是mahout-examples-0.4-job.jar,数据集直接用的uci上的synthetic_control.data

如果是将lucene索引转成向量后,这时候不能用mahout-examples-0.4-job.jar去运行mahout kmeans,格式不一致,此时可以手动运行mahout kmeans -i /user/test/testdata -o /user/test/output -c /user/test/output/cluster -x 5
-i:是输入向量路径
-o:是输出路径
-c:初始输入质心,如果k指定了,就随机从输入向量中选定
-x:是最大迭代次数

可问题是将索引转成向量后,聚类结果也是向量形式,根本不知道原始文本是怎么聚在一起的啊?

 

参考资料:

1.http://blog.csdn.net/forwen/article/details/4804733

2.SequenceFile介绍 :http://blog.163.com/jiayouweijiewj@126/blog/static/17123217720101121103928847/

3.http://blog.163.com/bit_runner/blog/static/53242218201141393943980/

4.http://blog.163.com/jiayouweijiewj@126/blog/static/171232177201011475716354/

nutch抓取数据后生成的文件格式

nutch抓取数据后,生成五个文件夹:crawldb、index、indexs、linkdb和segments,这五个文件夹具体存放什么内容,前面文章里有解释,每个文件夹下,最后就是data和inde...
  • aidayei
  • aidayei
  • 2011年07月29日 11:17
  • 3103

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

在上一篇博文中有和大家介绍了nutch爬虫抓取数据的整个过程,爬虫一般会抓取到很多的内容,那么这些内容都存放到什么地方了呢?其实nutch在抓取的过程中会产生很多的目录,会把抓到的内容分别保存到不同的...
  • Kandy_Ye
  • Kandy_Ye
  • 2016年04月24日 13:48
  • 1827

Nutch 查看抓取的文件

ls data           -- 有3个文件夹 crawldb  linkdb  segments ls data/crawldb   -- 有2个文件夹:curren...
  • zhaoyue007101
  • zhaoyue007101
  • 2015年11月11日 12:14
  • 1239

Nutch-2.2.1学习之八过滤抓取数据

在Nutch的conf目录中有automaton-urlfilter.txt、regex-urlfilter.txt、suffix-urlfilter.txt、prefix-urlfilter.txt...
  • sky_walker85
  • sky_walker85
  • 2013年12月25日 20:28
  • 6836

Nutch抓取数据内容的详解

命令:$ bin/nutch crawl tianya -dir crawl_tianya -depth 3 -topN 10(存放seed路径在tianya目录下) 抓取过程为: Inj...
  • qiange520
  • qiange520
  • 2016年03月03日 18:15
  • 2051

nutch-1.8爬虫网页中文乱码的处理

Nutch1.8在使用默认网页解析插件解析网页文本时,有些网页会出现在乱码问题。...
  • renyp8799
  • renyp8799
  • 2014年08月01日 10:13
  • 2149

转载:通过Java API编程实现Nutch Crawler抓取数据存储到MySQL数据库

Nutch Crawler抓取数据并存储到MySQL Apache Nutch是在Java平台上开发的开源网络爬虫工具。按照Nutch官方网站给出的向导,通过使用Nutch命令,可以比较容易地抓...
  • u012110719
  • u012110719
  • 2015年09月22日 11:19
  • 1609

[Nutch]抓取周期单步执行过程详解

nutch爬虫抓取周期中单步执行过程详解。
  • Kandy_Ye
  • Kandy_Ye
  • 2016年04月30日 16:24
  • 2726

eclipse中读取nutch爬取的数据内容

最近在研究Nutcha的爬虫和解析,在windows中利用cygwin执行nutch爬取网页。 那么爬取到的数据如何取到自己的程序中来使用呢? 参考了以下博主的内容,不过博主太懒没有任何文字描述。...
  • zhujie378
  • zhujie378
  • 2015年09月22日 11:41
  • 255

关于nutch1.2 配置到tomcat中搜索不到结果的问题解决

在官网上下了nutch1.2,配置到windows中,然后又将nutch-1.2.war配置到tomcat里。 经过一系列的配置,成功爬怪到了网页内容,用命令【bin/nutch org.apach...
  • zhujie378
  • zhujie378
  • 2015年09月11日 10:15
  • 372
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:nutch抓取数据后生成的文件格式
举报原因:
原因补充:

(最多只允许输入30个字)