- 浏览: 485800 次
- 性别:
- 来自: 湖南
-
文章分类
- 全部博客 (201)
- j2ee (43)
- oracle (9)
- mysql (7)
- db2 (1)
- j2se (3)
- spring (1)
- hibernate (3)
- struts (0)
- Berkeley DB (0)
- linux (60)
- Apache2+PHP+MYSQL (2)
- solr (15)
- svn (1)
- IntelliJ Idea (1)
- eclipse,myeclipse (4)
- ant (2)
- vim (8)
- IT生活 (4)
- 测试 (6)
- lucene (4)
- shell (1)
- nutch (18)
- thread (1)
- hadoop (5)
- mapreduce (0)
- Python (4)
- 硬件 (1)
- database (1)
- maven (1)
- 正则表达 (0)
- 互联网 (1)
最新评论
-
youngcoder:
good job
HTTP协议头部与Keep-Alive模式详解 -
javazdq:
受教了 解释的不错。
lucene创建索引高级特性和索引创建参数优化 -
josico:
有几个问题想问下楼主1. LinkedBlockingQueu ...
生产者-消费者-BlockingQueue -
annybz:
有没有关于 BlockingQueue和ConcurrentL ...
生产者-消费者-BlockingQueue -
uniquejava:
多谢,记录的很真实。
DB2 学习记录
Nutch-0.9源代码:Crawl类整体分析
Nutch-0.9中,org.apache.nutch.crawl.Crawl类中提供了一个入口主函数main,通过接收键入的命令 行,根据命令行指定的参数对Nutch进行配置,从而启动Nutch抓取程序,通过阅读org.apache.nutch.crawl.Crawl类的源 代码来了解Nutch是如何根据接收的命令行进行配置及其启动的。
org.apache.nutch.crawl.Crawl类的主函数如下所示:
// 应该知道,Nutch查找文件系统是基于Linux系统的机制的,所以提供启动的命令与Linux的Shell命令很相似。 public static void main(String args[]) throws Exception { Configuration conf = NutchConfiguration.create(); // 使用静态类NutchConfiguration创建一个org.apache.hadoop.conf.Configuration实例,可以在Hadoop的源代码中查看到该类的定义(读取hadoop-site.xml配置文件)
Path rootUrlDir = null; // 初始URLs文件所在的目录,使用Hadoop的org.apache.hadoop.fs.Path类创建目录 for (int i = 0; i < args.length; i++) { // 根据读取的命令行,设置抓取工作配置信息。
FileSystem fs = FileSystem.get(job); // 根据抓取工作配置JobConf创建一个用来存放抓取到的网页的目录。
if (LOG.isInfoEnabled()) { // 登录日志信息
// 在目录dir下面创建下面5个目录,用来存放,抓取工作过程中不同操作生成的文件或者目录。
Path tmpDir = job.getLocalPath("crawl"+Path.SEPARATOR+getDate()); indexer.index(indexes, crawlDb, linkDb, fs.listPaths(segments)); // 索引过程
|
通过上面的源代码的整体分析,总结一下具体都在这里做了哪些工作:
1、读取命令行参数,合法以后才继续初始化配置实例;
2、通过读取hadoop-site.xml配置文件,初始化一个Configuration实例,并根据crawl-tool.xml文件内容设置抓取工作配置;
3、设置一些默认抓取工作参数,如果命令行中没有指定就会按照默认的参数值进行抓取工作的执行,比如,抓取工作抓取到的网页文件存放目录rootUrlDir、启动的抓取工作进程数threads、抓取深度depth、抓取网页数量topN;
4、创建抓取工作抓取到的网页文件的存放目录,及其子目录(crawldb、linkdb、segments、indexes、index),这些子目录有的是用来存放原生网页,有的是预处理网页文件,有的是网页解析出的文本内容及其其它相关数据等等;
5、在抓取工作及其索引过程中,要进行很多操作来对网页文件或数据进行处理,这通过初始化一些实现了这些操作的类的实例来完成的,例 如:Injector、Generator、Fetcher、ParseSegment、CrawlDb、LinkDb、Indexer、 DeleteDuplicates、IndexMerger。这些类中,有的是作为实体类,像CrawlDb、LinkDb,它们需要在抓取工作执行过程 中及时更新,保持数据状态的处于良好正确状态。
6、最后,就开始执行相关操作了,包括初始化CrawlDb、生成抓取工作列表、抓取网页文件、更新CrawlDb、倒排Links、建立索引、复制索引文件、合并索引文件。
发表评论
-
网页去重
2011-01-11 09:34 2144搜索引擎判断复制网页一般都基于这么一个思想:为每个网页计算出一 ... -
nutch 抓取动态网页设置
2010-12-04 22:48 3840nutch过滤规则crawl-urlfilter.t ... -
nutch 中的MapReduce详细分析
2010-12-02 22:48 1846作者:马士华 发表于: ... -
提高Nutch局域网抓取的速度
2010-11-30 19:36 1341提高Nutch局域网抓取的速度 如果想要提高N ... -
nutch 过滤掉不正确的URL实现方法:
2010-11-29 22:39 2001nutch 1.0 读源码,过滤掉不正确的URL实现方法: ... -
nutch中Nutch-defaul.xml相关配置
2010-11-28 22:27 1894Nutch-default.XML相关 ... -
nutch的核心流程分析
2010-11-26 00:09 2282Crawl类的时序图。 流程如下 ... -
Nutch中文分词总结
2010-11-18 19:06 25831 中文分词介绍 中文分词是在做检索类系统时需要重点考虑 ... -
nutch累积式抓取
2010-11-13 22:48 2360最近在网上查了好多关于nutch增量式抓取的脚本,但是我 ... -
提高Nutch局域网抓取的速度
2010-11-13 22:25 1610如果想要提高Nutch局域网抓取的速度,大家第一个想到 ... -
nutch如何才能抓取到动态的url
2010-11-13 08:09 3072nutch如何才能抓取到动 ... -
网络爬虫调研报告
2010-11-09 19:26 1860网络爬虫调研报 ... -
配置完成nutch容易出现的错误
2010-11-09 09:14 2433配置完成nutch容易出现的错误 1.1.2 ... -
Nutch1.0的配置与运行
2010-11-09 09:10 993Nutch1.0的配置与运行 ... -
Nutch1.0的配置与运行
2010-11-08 11:17 1058Nutch1.0的配置与运行 ... -
Nutch的资料
2010-11-08 10:59 1472Nutch的资料 http://issues. ... -
nutch的基本工作流程理解
2010-11-08 10:57 1472(一): Nutch 的工作流程: ...
相关推荐
安装完上述依赖后,将Nutch的源代码包下载到本地,解压至指定目录,如C:\nutch-0.9。解压后,需要修改nutch-site.xml文件以配置Nutch运行时的相关参数,例如配置抓取的用户代理名称: ```xml <name>...
总结,Nutch 0.9 版本为用户提供了完整的网络爬虫解决方案,包括Web界面、命令行工具和源代码,使得用户能够快速搭建和运行一个搜索引擎,同时也为开发者提供了深入学习和定制的机会。对于研究和实践搜索引擎技术的...
1. **准备Nutch的WAR包**:你需要下载Nutch的源代码或预编译的WAR文件。这里以Nutch 0.9为例,将其解压缩并重命名为`nutch`。 2. **复制到Tomcat目录**:将解压缩后的`nutch`文件夹复制到Tomcat的`webapps`目录下。...
5. `src`:Nutch的源代码目录。 6. `webapps`:包含了基于Tomcat的应用程序包,如`nutch-0.9.war`。 Nutch 的基本使用步骤: 1. 安装准备工作:确保系统安装了Cygwin、JDK(1.4.2以上版本)、Nutch(推荐0.9版本)...
- 推荐使用Nutch 0.9版本,确保下载的是源代码开放包。 - 安装Java环境,并配置好JDK。 - 准备好MyEclipse开发环境。 2. **新建Java项目**: - 打开MyEclipse,通过`File -> New -> Java Project`创建一个新的...
总的来说,配置Eclipse以运行Nutch涉及到多个步骤,包括正确导入源代码、设置构建路径、配置Nutch的相关文件以及解决可能的依赖问题。通过这些步骤,你可以在Eclipse中有效地开发、调试和运行Nutch,从而更好地理解...