nutch-2.0源码解读——简介

来源:互联网 发布:cg绘画软件 编辑:程序博客网 时间:2024/04/30 17:07

     这段时间读了nutch2.0的部分源码,经过对源码的分析对nutch2.0有了初步的了解,这里将记录下对源码的分析和分析中遇到的问题,以便以后学习和解决问题。

     本篇将从以下几方面概要介绍nutch2.0

  1.      nutch2.0 gora版介绍
  2.      nutch2.0的搭建
  3.      运行nutch命令抓取

1.nutch2.0 gora版介绍

        nutch的开发主要有两个方向,一个是nutch1.x,存储层仍是基于文件系统,只是功能上的完善,另一个是nutch2.x,主要改进在于存储层的抽象,通过使用NoSql并利用gora抽象出来,把原来的CrawlDb,Segments与LinkDB都整合到一个表webpage里,每一步操作通过一些标记列进行控制,目前支持的nosql数据库有Cassandra,hbase,accumulo,也支持关系数据库mysql。这样有两个好处,一方面使读取更新单条数据变的方便,另一方面更新CrawlDb时不必像以前那样用MR任务读取之前所有urls,再与新的urls进行合并,现在只要简单的对数据进行查找与更新就可以了。

2.nutch2.0的搭建

  •        下载nutch2.0    http://www.apache.org/dyn/closer.cgi/nutch/
  •         修改nutch目录下conf/nutch-site.xml

       

<property> <name>storage.data.store.class</name> <value>org.apache.gora.hbase.store.HBaseStore</value> <description>Default class for storing data</description></property>

  •            修改ivy/ivy.xml

<!-- Uncomment this to use HBase as Gora backend. -->        <dependency org="org.apache.gora" name="gora-hbase" rev="0.2" conf="*->default" />

  •           修改conf/gora.properties

gora.datastore.default=org.apache.gora.hbase.store.HBaseStore

  •          其他配置和nutch1.x一样,但是不要忘记配置那些属性
  •          确保hbase正常运行,编译nutch2.0——>ant runtime


3.运行nutch命令抓取

  • 单机环境在runtime/local/下执行

bin/nutch crawl urls -depth 3 -topN 5
urls是当前路径下的种子文件夹,

-threads  决定同时抓取的线程数,

-depth 决定从首页开始应该抓取的链接深度,

-topN 决定每一级深度上要抓取的最大网页数

  • 分布式环境在runtime/deploy/下执行同样的命令

urls是hdfs里的文件

  • 单步执行

bin/nutch inject urls

bin/nutch generate -topN 5

bin/nutch fetch

bin/nutch parse

bin/nutch updatedb

generate会生成batchid

fetch,parse,updatedb后可加上该batchid单独处理标记的页面,不加则处理数据库中全部页面。

原创粉丝点击