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
参考文章 http://blog.csdn.net/handyhuang/article/details/7421553
在e盘下面出现nutch-0.9文件夹说明解压成功了.然后环境变量设置为NUTCH_JAVA_HOME=C:\Program Files\Java\jdk1.5.0(也就是说跟JAVA_HOME是相同的).测试nutch是否安装成功,只需要执行以下命令: $cd D:/Downloads/...
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。 本资源官网上下的源代码。 nutch-2.1 适用于windows系统
1.6 Tomcat中启动搜索站台 1. 将Nutch.war包考到Tomcat的webapps下。 部署后,进入站台目录下的...<value>E:\nutch-0.9\crawl</value> 2. 启动Tomcat,输入http://127.0.0.1:8080/nutch-0.9 3. 可以进行查询了。
apache-nutch-2.3.1-src.tar.gz
apache-nutch-2.2.1(Eclipse直接运行版)今天刚做的,发现有很多坑,分享给大家实验,JDK1.7 Win10。我分享的两个压缩卷一起下载才可以用,资源限制太小了 002地址:...
nutch-web-api 它是什么 nutch-web-api是 Apache Nutch 爬虫应用程序的 RESTFul API 实现。 这个项目完全是用 node.js 和 coffeescript 编写的,目的是简化使用并提高灵活性。 REST API 不是 apache nutch 应用程序...
nutch配置nutch-default.xml
nutch-windows-脚本 在 Windows 上运行 Nutch 2.1 的简单脚本
apache-nutch-1.3 的源码包,需要的可以看下
nutch 0.9分页代码(粘贴可用)
Nutch是一个由Java实现的,刚刚诞生开放源代码(open-source)的web搜索引擎。Nutch目前最新的版本为version1.4。这个为nutch的最新版 1.4。
Eclipse 中编译 Nutch-1.0 运行源代码
Nutch是一款刚刚诞生的完整的开源搜索引擎系统,可以结合数据库进行索引,能快速...Nutch的开放源代码方便任何人去查看Nutch排序算法的工作流程。因此Nutch就可以更好的发展,为那些爱好搜索引擎的人们提供了一个平台。
#Politeness配置:为了处理礼貌,已将属性添加到文件nutch-site.xml中。 我们将坚果机器人(http.agent.name)标记为CS572 RASNA,代理说明(http.agent.description)设置为一个字符串,表示我们正在作为分配的一...
此 WIP Nutch 部署使用 Nutch 自动登录并抓取 。 运行build.sh以检出 Nutch 主干,构建它,并复制必要的配置文件。 完成后, cd dist使用新配置的 Nutch 发行版。 有关更新的配置文件,请参阅和 。 运行命令bin/...
已编译好的版本,可以直接导入eclipse、idea。Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。
cd nutch-htmlunit/runtime/local bin/crawl urls crawl false 1 //urls参数为爬虫入库url文件目录; crawl为爬虫输出目录; false本应为solr索引url参数,此处设置为false不做solr索引处理; 1为爬虫执行回数 ...
Nutch 是一个开源Java 实现的搜索引擎。这里是它的安装包。