在分布式(部署)模式的Nutch的抓取后如下:
bin/nutch crawl s3n://..... -depth 10 -topN 50000 -dir /crawl -threads 20
我需要提取每个URL获取沿着地图缩小友好的格式与它的内容。 通过使用下面的命令readseg,其内容被取出但输出格式本身不适合于被地图降低。
bin/nutch readseg -dump /crawl/segments/* /output -nogenerate -noparse -noparsedata -noparsetext
理想情况下,输出应为以下格式:
http://abc.com/1 content of http://abc.com/1
http://abc.com/2 content of http://abc.com/2
任何建议如何实现这一目标?
所述bin/nutch readseg
命令产生以人可读的格式输出,并且不降低映射格式。 该数据被存储在地图,减少格式段。 我不认为你可以直接拔出从地图,减少格式链段该信息。
你的关心几个选项:
- 段本身映射简化格式的文件。 你能重新使用那些?
- 的输出
readseg
命令可以被转换通过编写一个小地图,减少码映射-降低形式。
答案在于调整Nutch的源代码。 事实证明,这是非常简单的。 导航到SegmentReader.java
文件在apache-nutch-1.4-bin/src/java/org/apache/nutch/segment
内部的SegmentReader
类是这样的方法reduce
其是负责产生人类可读输出的bin/nutch readseg
命令生成。 改变StringBuffer dump
变量,你认为合适的-这对于它是由代表一个给定的URL的整个输出key
变量。
请确保您运行ant
创建一个新的二进制进一步的调用bin/nutch readseg
应产生在你的自定义格式的输出。
这些引用的导航代码都非常有用:
[1] http://nutch.apache.org/apidocs-1.4/overview-summary.html
[2] http://nutch.apache.org/apidocs-1.3/index-all.html