出处: http://hi.baidu.com/shirdrn/blog/item/a4934f116b575018b8127b72.html
org.apache.nutch.util.NutchConfiguration类是Nutch爬虫的配置类,其中包括爬虫的初始化配置和运行时配置。说到NutchConfiguration类,我认为有必要提到Hadoop的Configuration类,即org.apache.hadoop.conf.Configuration。在Nutch早期开发版本中,Hadoop是Nutch项目的一部分,其中Hadoop主要包含两个部分:一个是HDFS(Hadoop分布式文件系统),当然Hadoop中也支持单机文件系统,另一个是Hadoop实现了Google的MapReduce算法,这是一个非常经典的算法。Nutch项目也是基于Hadoop的这两点来实现。
Hadoop文件系统,通过它的配置文件你就可以了解它都具有哪些参数,也大致能从这些参数中了解到该文件系统配置的灵活性,其中,对应的配置类为org.apache.hadoop.conf.Configuration类,该配置类主要是根据配置文件hadoop-default.xml和hadoop-site.xml来进行创建文件系统,hadoop-default.xml是默认的配置文件,在Nutch中,通过配置hadoop-env.sh来设置环境变量,通过配置hadoop-site.xml文件,来配置Nutch所基于的文件系统。
Configuration类就是针对hadoop-default.xml和hadoop-site.xml文件的,里面实现了解析配置文件,其中hadoop-default.xml是默认的,里面配置的内容已经是一个完整的配置。如果配置了hadoop-site.xml文件,系统在初始化Configuration配置类实例的时候,会首先加载默认的hadoop-default.xml文件中的配置,然后读取hadoop-site.xml文件,如果不是空配置,就用该配种文件中的配置来覆盖掉默认的配置。
Configuration类中主要实现了如下一些操作:解析配置文件、设置运行时配置参数、获取配置参数。
NutchConfiguration类是在创建一个Configuration配置实例的基础上,根据Nutch运行的需要,在Configuration实例的基础上进一步进行了配置,如下所示:
public static Configuration create() {
Configuration conf = new Configuration();
addNutchResources(conf);
return conf;
}
将Configuration类的实例作为参数,调用addNutchResources方法,在Configuration类的实例现有配置的基础上,增加了 Nutch的配置,addNutchResources方法如下所示:
public static Configuration addNutchResources(Configuration conf) {
conf.addDefaultResource("nutch-default.xml");
conf.addFinalResource("nutch-site.xml");
return conf;
}
同样,nutch-default.xml是Nutch默认的配置,可以配置nutch-site.xml来覆盖默认的配置nutch-default.xml。
其实,在org.apache.nutch.crawl.Crawl类中可以看到,Nutch的配置其实就是在Configuration的基础上进行更加详细配置,只要需要,就可以向Configuration中添加自定义的配置文件,因为Configuration类对配置文件的解析与读取都做了很好的实现。
因为在Nutch-0.9中使用了Hadoop-0.12.2,这个版本的Hadoop与更高版本的Hadoop不同,在Configuration中就能看到,在0.12.2版本中将两类配置分开存放,分别放在两List列表中:
public Configuration() {
if (LOG.isDebugEnabled()) {
LOG.debug(StringUtils.stringifyException(new IOException("config()")));
}
defaultResources.add("hadoop-default.xml");
finalResources.add("hadoop-site.xml");
}
其中final表示在Nutch爬虫运行过程中,对应final配置的参数是在hadoop-site.xml中,这里,首先解析加载hadoop-default.xml中配置的参数,如果hadoop-site.xml中重写了某些参数,就要用hadoop-site.xml中的参数覆盖掉hadoop-default.xml中对应参数的配置。final的含义也就是最终生效的配置要由hadoop-site.xml中的配置来看(如果hadoop-site.xml中进行配置)。
而到了0.18.0版本中,直接放到了同一个List中,但都是在Configuration类将final参数区分开来。
在在org.apache.nutch.crawl.Crawl类中,可以看到又增加了一个crawl-tool.xml配置:
Configuration conf = NutchConfiguration.create();
conf.addDefaultResource("crawl-tool.xml");
crawl-tool.xml也是一个默认的配置,它的配置项内容和nutch-site.xml以及nutch-default.xml中的是同等的,如果需要修改crawl-tool.xml配置文件,不允许修改该文件,而是将修改后的配置写入到nutch-site.xml文件中。
分享到:
相关推荐
### Eclipse中编译Nutch-0.9:详解与步骤 #### 核心知识点概览 在本篇文章中,我们将深入探讨如何在Eclipse环境中编译Nutch-0.9,一个开源的网络爬虫项目,用于抓取互联网上的网页信息。文章涵盖的关键知识点包括...
1. **下载Nutch源码**:首先,从Apache官方网站或者镜像站点下载Nutch-0.9的源代码。将下载的源码解压到你想要的工作目录下,例如`C:\nutch\src\nutch-0.9`。 2. **配置环境变量**:打开Cygwin终端,设置必要的环境...
在研究和使用Nutch-2.1源代码时,你可以深入了解搜索引擎的各个组成部分,如爬虫的实现、索引过程的细节、查询处理的算法等,这对于提升自己的搜索引擎技术知识非常有帮助。同时,Nutch也是研究搜索引擎优化(SEO)...
在e盘下面出现nutch-0.9文件夹说明解压成功了.然后环境变量设置为NUTCH_JAVA_HOME=C:\Program Files\Java\jdk1.5.0(也就是说跟JAVA_HOME是相同的).测试nutch是否安装成功,只需要执行以下命令: $cd D:/Downloads/...
`apache-nutch-2.3.1-src.tar.gz` 是 Apache Nutch 的源代码包,版本号为 2.3.1,以 tar.gz 格式压缩。 这个压缩包中包含的主要文件和目录结构如下: 1. **src**: 这是 Nutch 的源代码存放位置,分为多个子目录,...
安装完上述依赖后,将Nutch的源代码包下载到本地,解压至指定目录,如C:\nutch-0.9。解压后,需要修改nutch-site.xml文件以配置Nutch运行时的相关参数,例如配置抓取的用户代理名称: ```xml <name>...
apache-nutch-2.2.1(Eclipse直接运行版)今天刚做的,发现有很多坑,分享给大家实验,JDK1.7 Win10。我分享的两个压缩卷一起下载才可以用,资源限制太小了 002地址:...
在这个"apache-nutch-1.4-bin.tar.gz"压缩包中,包含了运行 Nutch 的所有必要组件和配置文件,适合初学者和开发者快速部署和实验。 **Nutch 的核心组成部分:** 1. **爬虫(Spider)**:Nutch 的爬虫负责在网络中...
- **Git**:获取nutch-windows-script项目的源代码。 - **Cygwin**或**Git Bash**:提供类似于Linux的命令行环境。 安装完这些依赖后,你可以按照以下步骤操作: 1. **克隆项目**:使用Git从GitHub上克隆“nutch-...
在“apache-nutch-1.7-src.tar.gz”这个压缩包中,你将获得Nutch 1.7的源代码,这使得开发者可以深入了解其工作原理,并对其进行定制和扩展。解压后的文件夹“apache-nutch-1.7”包含了所有必要的组件和配置文件。 ...
nutch-web-api 它是什么 nutch-web-api是 Apache Nutch 爬虫应用程序的 RESTFul API 实现。 这个项目完全是用 node.js 和 coffeescript 编写的,目的是简化使用并提高灵活性。 REST API 不是 apache nutch 应用程序...
- **配置文件**:Nutch的运行依赖于一系列配置文件,如`conf/nutch-site.xml`,用户可以通过修改这些文件来定制爬虫行为。 - **插件系统**:Nutch支持丰富的插件体系,如URL过滤器、解析器、索引器等,开发者可以...
nutch配置nutch-default.xml
这个源码包 "apache-nutch-1.3-src.tar.gz" 和 "nutch-1.3.tar.gz" 包含了 Nutch 1.3 的源代码和编译后的二进制文件,对于开发者和研究者来说是非常有价值的资源。 **Nutch 概述** Nutch 是基于 Java 开发的,遵循 ...
然后,根据项目需求,可以编辑配置文件(如conf/nutch-site.xml)来定制爬虫行为,如设置爬取策略、抓取频率、存储路径等。 7. **扩展性与集成**: Nutch的设计使其易于与其他系统集成,比如可以与Hadoop结合实现...
接下来,需从官方网站下载Nutch-1.0的源代码压缩包(`nutch-1.0.tar.gz`),并进行解压。随后,在Eclipse中创建一个新的Java项目,命名可自定义,如“Nutch”,并在创建过程中选择“从现有源代码创建项目”选项,...
4. **配置与部署**:解压 "apache-nutch-1.9" 文件后,需要根据你的环境配置`conf/nutch-site.xml`文件,设置包括抓取间隔、并发度、存储路径等参数。同时,可能还需要配置`conf/regex-urlfilter.txt`和`conf/...
这个`apache-nutch-1.6-src.tar.gz`文件包含了Nutch 1.6的源代码,允许开发者深入研究其内部机制,定制自己的爬虫需求,或者为项目贡献代码。 源代码包`apache-nutch-1.6`中通常包含以下几个关键部分: 1. **源...
### Nutch 0.9 分页代码解析与应用 #### 一、背景介绍 Nutch 是一个开源的网络爬虫项目,它提供了高度可扩展且可靠的网页抓取框架。随着互联网的发展,数据量日益增大,如何高效地处理这些数据成为了一个重要的...
- **环境变量配置:** 在项目属性中配置构建路径,添加源代码文件夹(src/java, src/test, src/testresources)以及配置类库路径(build和conf)。 **3. Ivy依赖管理** - **配置:** 使用IvyDE插件管理项目依赖,包括主...