nutch-2.0源码解读——简介
来源:互联网 发布:cg绘画软件 编辑:程序博客网 时间:2024/04/30 17:07
这段时间读了nutch2.0的部分源码,经过对源码的分析对nutch2.0有了初步的了解,这里将记录下对源码的分析和分析中遇到的问题,以便以后学习和解决问题。
本篇将从以下几方面概要介绍nutch2.0
- nutch2.0 gora版介绍
- nutch2.0的搭建
- 运行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 5urls是当前路径下的种子文件夹,
-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单独处理标记的页面,不加则处理数据库中全部页面。
- nutch-2.0源码解读——简介
- Hikaricp源码解读(1)——简介
- nutch-2.0源码之InjectorJob
- nutch-2.0源码之GeneratorJob
- nutch v1.9源码分析(2)——nutch bin和src目录解析及编译
- nutch v1.9源码分析(3)——nutch基本爬取流程
- nutch简介
- Nutch简介
- kubernetes源码解读——源码结构
- Nutch学习——读源码 Crawl.java
- Nutch学习——读源码 Injector.java
- nutch v1.9源码分析(1)——分析目标
- nutch v1.9源码分析(4)——injector分析
- nutch v1.9源码分析(5)——generator分析
- nutch v1.9源码分析(6)——plugin系统
- nutch-build.xm解读
- SEDA简介与源码解读(一)
- 可重入锁 ReentrantLock 源码解读(1)简介
- 第二周小结
- 二分匹配之匈牙利算法
- poj 1731 orders
- 开源界面库
- 例题3-1
- nutch-2.0源码解读——简介
- Android手机访问web服务器(post请求)
- 彻底解决frame work 3.5安装失败的问题
- 软件从业人员为什么要懂业务
- 幂等性 个人理解及应用
- Android的通讯录数据库表结构
- C++学了这么多年,你仍不知道的事!!!
- 解决win7虚拟机上不能打开虚拟系统
- AVD 4.0.3中出现的灵异事件,期待来者