/**
*本人亦初学者,如有不正确的地方请多多指教。谢谢!
*部分内容参考自互联网,如有冒犯,请见谅。
**/
Nutch的配置文件主要有三类:
1.Hadoop的配置文件,Hadoop-default.xml和Hadoop-site.xml。
2.Nutch的配置文件,Nutch-default.xml和Nutch-site.xml。
3.Nutch的插件的配置文件,这些插件的配置文件在加载插件的时候由插件自行加载,如filter的配置文件。
配置文件的加载顺序决定了配置文件的优先级,先加载的配置文件优先级低,后加载的配置文件优先级高,优先级低的配置会被优先级高的配置覆盖。因此,了解Nutch配置文件加载的顺序对学习使用Nutch是非常必要的。下面我们通过对Nutch源代码的分析来看看Nutch加载配置文件的过程。
Nutch1.0使用入门(一)
介绍了Nutch主要命令--crawl的使用,下面我们就从crawl的main类(org.apache.nutch.crawl.Crawl)的main方法开始分析:
Crawl类main方法中加载配置文件的源码如下:
Configuration conf = NutchConfiguration.create();
conf.addResource("crawl-tool.xml");
JobConf job = new NutchJob(conf);
上面代码中,生成了一个NutchConfiguration类的对象,NutchConfiguration是Nutch管理自己配置文件的类,Configuration是Hadoop管理自己配置文件的类。下面我们进入NutchConfiguration类的create()方法。
/** Create a {@link Configuration} for Nutch. */
public static Configuration create() {
Configuration conf = new Configuration();
addNutchResources(conf);
return conf;
}
create()方法中,先生成了一个Configuration类的对象。请看Configuration类中的源码:
/** A new configuration. */
public Configuration() {
this(true);
}
/** A new configuration where the behavior of reading from the default
* resources can be turned off.
*
* If the parameter {@code loadDefaults} is false, the new instance
* will not load resources from the default files.
* @param loadDefaults specifies whether to load from the default files
*/
public Configuration(boolean loadDefaults) {
if (LOG.isDebugEnabled()) {
LOG.debug(StringUtils.stringifyException(new IOException("config()")));
}
if (loadDefaults) {
resources.add("hadoop-default.xml");
resources.add("hadoop-site.xml");
}
}
由上面代码可以看出,在创建Configuration对象的时候,会依次加载hadoop-default.xml和hadoop-site.xml这两个配置文件。所以Hadoop-site.xml中的配置会覆盖hadoop-default.xml中的配置。了解完Hadoop配置文件的加载,我们回到刚才的create()方法里面。创建了Configuration对象后,将调用addNutchResources(conf)方法。
/** Add the standard Nutch resources to {@link Configuration}. */
public static Configuration addNutchResources(Configuration conf) {
conf.addResource("nutch-default.xml");
conf.addResource("nutch-site.xml");
return conf;
}
我们看到,先加载了nutch-default.xml文件,后加载了nutch-site.xml文件。所以nutch-site.xml中的配置会覆盖nutch-default.xml中的配置。下面我们回到crawl类的main方法,继续往下看。调用了conf.addResource("crawl-tool.xml");这表明crawl-tool.xml配置文件是最后加载。
通过上面简单的源码分析,我们不难看出Nutch配置文件的优先级。
Nutch自己的配置文件:crawl-tool.xml > nutch-site.xml > nutch-default.xml
hadoop的配置文件:hadoop-site.xml > hadoop-default.xml
当然,因为nutch的配置文件后于Hadoop的配置文件的加载,nutch的配置也会覆盖Hadoop配置文件中的配置。需要明白的是覆盖的不是整个配置文件,而是单独的Property。
分享到:
相关推荐
nutch使用&Nutch;入门教程 pdf
Nutch入门使用文档,教大家如何部署Nutch爬虫
Nutch的配置文件主要有三类: 1.Hadoop的配置文件,Hadoop-default.xml和Hadoop-site.xml。 2.Nutch的配置文件,Nutch-default.xml和Nutch-site.xml。 3.Nutch的插件的配置文件,这些插件的配置文件在加载插件的时候...
1 Nutch简介 2 1.1 nutch体系结构 2 2 抓取部分 3 2.1 爬虫的数据结构及含义 3 2.2 抓取目录分析 4 2.3 抓取过程概述 4 2.4 抓取过程分析 5 ...3 配置文件分析 3.1 nutch-default.xml分析 31 …………
Nutch开发入门 Nutch安装和使用 Nutch二次开发 很不错
eclipse配置nutch,eclipse配置nutch
nutch学习nutch帮助文档;nutch学习 入门
nutcher 是 Apache Nutch 的中文教程,在github上托管。nutch社区目前缺少教程和文档,而且教程对应版本号较为落后。nutcher致力于为nutch提供... Nutch参数配置——http.content.limit 文档截图:
学习nutch 源码解读 轻松入门 搭建自己的nutch搜索引擎
nutch入门学习不错的一本书,有代码,有截图,解释清晰详细。更有助与于了解搜索引擎。
nutch入门教程,nutch入门安装流程
Nutch入门教程 高清 带书签
Nutch入门学习 7.1 概述...41 7.2 MapReduce.......41 7.3 文件系统语法......42 7.4 文件系统设计......42 7.5 系统的可用性......43 7.6 Nutch文件系统工作架构...43 8. nutch应用.45 8.1 修改源码.....45...
Nutch入门教程,对搜索引擎有兴趣的同学,可以好好学习下,
Linux下Nutch分布式配置 使用:分布式爬虫、索引、Nutch搜索本地数据、Nutch搜索HDFS数据。
Nutch 是开源的,可以建立自己内部网的搜索引擎,也可以针对整个网络建立搜索引擎
我自己对nutch安装开发环境的一些理解,以及遇到问题的解决方法
mp3文件信息解析。支持ID3标准的V1和V2.3.可以再nutch中使用。宁外附上nutch的parse-html的一些定制。(图片,关键字匹配)
Nutch入门教程PDF下载,apache项目
nutch的使用方法,里面有具体的nutch代码函数,命令,对于基本的网页爬取是够了