`
softkid
  • 浏览: 101537 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Nutch 使用入门(三)——配置文件的加载

    博客分类:
  • java
阅读更多
/** 
 *本人亦初学者,如有不正确的地方请多多指教。谢谢! 
 *部分内容参考自互联网,如有冒犯,请见谅。
 **/ 

 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。

0
0
分享到:
评论

相关推荐

    nutch使用&Nutch;入门教程

    “Nutch使用.pdf”和“Nutch入门教程.pdf”这两份文档将详细介绍如何从零开始使用Nutch,包括环境搭建、配置、启动爬虫、监控爬虫状态、查看抓取结果和索引数据等。通过这些教程,你可以快速掌握Nutch的基本操作,并...

    Nutch_的配置文件

    Nutch的配置文件主要分为三类: 1. **Hadoop的配置文件**:包括`Hadoop-default.xml`和`Hadoop-site.xml`。`Hadoop-default.xml`是Hadoop的默认配置,列出了所有可能的配置选项和它们的默认值。而`Hadoop-site.xml`...

    Nutch使用入门

    本文档将引导你入门Nutch的基本使用,包括环境配置、部署、爬取网页以及搜索功能的实现。 **环境要求:** 1. **JDK 1.5 或更高版本** - Nutch 需要Java开发环境支持,确保你的系统已经安装了Java,并且版本符合要求...

    nutch帮助文档;nutch学习 入门

    - **理解配置**:熟悉Nutch的配置文件,如`conf/nutch-site.xml`,了解其主要参数和用途。 - **编写种子列表**:定义初始的URL集合(种子),这是爬虫的起点。 - **运行Nutch流程**:执行`bin/nutch crawl`命令,...

    nutch 详细分析(包括配置文件等)

    在实际使用中,理解并调整这些配置文件对于优化Nutch的性能和满足特定需求至关重要。例如,调整抓取频率可以控制抓取速度,避免对目标网站造成过大压力;定制URL过滤规则可以确保只抓取感兴趣的内容;选择合适的解析...

    eclipse配置nutch,eclipse配置nutch

    为了使Nutch在Eclipse中正常运行,你需要修改Nutch的默认配置文件`nutch-default.xml`。具体而言,将`plugin.folders`参数改为`"./src/plugin"`,以确保Nutch能够识别到项目的插件目录。 #### 步骤5:设置URL文件 ...

    Nutch入门教程 高清 带书签

    通过阅读提供的“Nutch入门教程.pdf”,你可以学习如何安装Nutch、配置环境、创建并运行爬虫任务、查看抓取日志、分析抓取结果、调试插件等步骤,逐步掌握Nutch的使用。 总结来说,Nutch是一款强大的开源搜索引擎...

    nutch使用文档

    配置 Nutch 创建索引需要在 Nutch 配置文件中指定索引的存储路径和索引的名称。例如,以下是 Nutch 配置文件中的一些配置项: `<property name="indexer.max.numSegments" value="10"/>` `...

    Nutch入门教程.pdf

    以上内容构成了Nutch入门教程的核心知识点,从简介、安装配置、初体验、基本原理、分析方法、分布式文件系统以及应用等多方面,详细介绍了Nutch框架及其使用方法,为对搜索引擎感兴趣的用户提供了一个全面的学习资源...

    Nutch中文教程nutcher.zip

    nutcher 是 Apache Nutch 的中文教程,在github上托管。nutch社区目前缺少教程和文档,而且教程对应版本号较为落后。nutcher致力于为nutch提供... Nutch参数配置——http.content.limit 文档截图:

    Nutch使用指南(英文)

    #### 三、快速入门 首先,需要获取 Nutch 的代码。可以从 Apache Lucene 的官方网站下载发布版: - 下载地址:[http://lucene.apache.org/nutch/release/](http://lucene.apache.org/nutch/release/) - 解压后,...

    分享一个Nutch入门学习的资料

    通常这样的博客会详细解释如何从零开始搭建Nutch环境,包括安装Java、Hadoop,配置Nutch的配置文件,以及运行Nutch的基本命令。 标签“源码”意味着这个学习资料可能涉及Nutch的源代码分析,这对于深入理解Nutch的...

    nutch安装开发环境的配置

    Nutch 是一个开源的网络爬虫项目,用于抓取网页并建立索引。它与 Hadoop 紧密集成,支持大规模数据处理。...当你成功配置好 Nutch 环境后,就可以开始使用 Nutch 进行网页抓取和索引,为数据分析和搜索引擎建立基础。

    nutch入门.pdf

    分布式文件系统部分概述了Nutch的文件系统,包括MapReduce、文件系统语法、设计、可用性以及Nutch文件系统工作架构。 在应用方面,提到了如何修改源码和使用插件机制(plugin),以及如何利用Nutch API和OpenSearch...

    mp3文件信息解析-nutch使用

    5. **配置调整**:在Nutch的配置文件中,设置相应的解析优先级和处理策略。 压缩包子文件的文件名称列表中提到了"org",这可能是指Nutch相关的源代码包或类库。在实际操作中,开发者可能需要查看Nutch的源代码,...

Global site tag (gtag.js) - Google Analytics