一、Nutch Plugin的优缺点
优点:
1、 nutch plugin系统是基于Eclipse 2.x中对插件的使用,它具有很好的扩展性、灵活性、可维护性。
2、 每个插件都有自己的类装载器进行装载,使用各个插件之间具有完全的独立性,任何一个插件的卸载都不会影响到其他插件的使用。
3、 所有的插件都实现Pluggable接口(空接口),更好区分插件类与非插件类,以便对所有插件类进行统一管理(例:记录日志)。
缺点:运行时不能动态加载与卸载。
二、Plugin的概念
对于nutch的插件系统,有三个概念需要理顺,plugin、Extension、ExtensionPoint。对于这三个角色,以下画了张图加深下理解。
ExtensionPoint:提供了扩展点的元信息,相当于系统所暴露出需要用户扩展的接口。
Extension:它是针对插件系统提供的扩展点的实现,-作为extension points的侦听器,可以被动态的安装。一个Extension实现一个ExtensionPoint。
Plugin:是一组定制逻辑的容器,向nutch的核心功能提供扩展。
三、Plugin的相关类
四、Plugin的加载
Plugin的加载,我们以例子的方式来描述,以插件处理类IndexingFilters为入口进行分析。
1、建立索引时,调用IndexingFilters进行文本过滤。
2、IndexingFilters从插件仓库(PluginRepository)获取扩展点(ExtensionPoint)。获取扩展点(ExtensionPoint)时,如果是第一次操作,插件仓库(PluginRepository)为空,则插件仓库(PluginRepository)通过配置文件查找到plugin的文件目录,对plugin下的所有插件进行加载(通过各个插件文件下的plugin.xml来加载plugin、ExtensionPoint、Extension之间的对应关系)。
3、通过获取到的ExtensionPoint来得到所对应的该扩展点下的所有扩展项(Extension)。
4、循环调用所有的Extension
5、执行完毕
- 大小: 18.2 KB
- 大小: 95.6 KB
- 大小: 54.5 KB
分享到:
相关推荐
Nutch Htmlunit Plugin 重要说明: 当前项目基于Nutch 1.X系列已停止更新维护,转向Nutch 2.x系列版本的新项目:http://www.oschina.net/p/nutch-ajax 项目简介 基于Apache Nutch 1.8和Htmlunit...
### Nutch入门学习知识点详解 #### 1. nutch简介 **1.1 什么是nutch** Nutch是一个开源的搜索引擎框架,完全采用Java编写,旨在帮助用户构建和运行自己的搜索引擎。它提供了一系列的工具和服务,使用户能够从...
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 8.2 ...
在IT领域,Apache Nutch是一款开源的Web爬虫...这不仅为学习和研究Nutch提供了便利,也为实际应用中的数据采集和分析打下了坚实的基础。记住,配置过程中遇到任何问题,都可以查阅官方文档或社区论坛,寻求解决方案。
要使用Nutch插件,开发者需要在`conf/nutch-site.xml`配置文件中添加插件的名称到`plugin.includes`列表中。每个插件都有一个`plugin.xml`文件,用于描述插件信息,以及一个`build.xml`文件,指导Ant构建工具如何...
5. **修改全局配置**:在`conf/nutch-default.xml`中,需要更新`plugin.includes`配置项,以包含新开发的插件。 #### 三、Mysql与Nutch的集成 除了插件开发,Nutch还支持将爬取的数据存储到MySQL数据库中。这一...
学习Nutch可以提供对搜索引擎内部工作原理的深入了解,特别是对那些对搜索排序的透明度、搜索引擎的内部工作原理以及如何构建自己的搜索引擎感兴趣的用户来说,是一个很好的选择。Nutch的目标是让任何人都可以轻松地...
2. **java.lang.RuntimeException: org.apache.nutch.plugin.PluginRuntimeException: java.lang.ClassNotFoundException: org.apache.nutch.net.RegexURLFilter** 这个问题可能是因为插件目录设置不正确。在 `...
在应用方面,提到了如何修改源码和使用插件机制(plugin),以及如何利用Nutch API和OpenSearch API接口。插件机制是Nutch灵活性的重要体现,它允许用户通过插件来扩展Nutch的功能。编写插件部分讲解了如何开发自己...
插件(Plugin)作为Nutch的核心组件之一,为用户提供了一种灵活的方式来定制和扩展Nutch的功能。通过这种方式,不仅可以增强Nutch的原有功能,还能根据特定的需求添加新的功能模块。 Nutch插件系统具有以下优势: ...
这通常涉及到修改`conf/nutch-site.xml`文件,在`plugin.includes`属性中添加插件名称。 #### 五、示例:推荐插件开发 假设我们需要开发一个插件,用于推荐与特定关键词相关的网页。例如,当用户搜索“plugin”时...
### Nutch 2.3.1 安装与配置指南 #### 一、配置 ant 环境 在安装 Nutch 之前,首先需要确保环境中已经安装了 Apache Ant 工具,因为 Nutch 的构建过程依赖于 Ant。以下是具体步骤: 1. **下载 ant**: - 访问 ...
分布式搜索引擎Nutch开发详解 Nutch是一款开源的、基于Java实现的全文搜索引擎,它主要用于构建大规模的网络爬虫系统,...通过深入学习和实践,我们可以利用Nutch构建自己的个性化搜索引擎,满足各种复杂场景的需求。
2. **理解搜索引擎**:学习Nutch有助于深入理解搜索引擎的工作原理,尤其是大规模分布式系统的运作方式。 3. **扩展性**:Nutch的灵活性允许用户根据需求定制搜索引擎,无论是界面还是功能,都可以通过其插件机制...
(1)在conf/nutch-default.xml中,将`plugin.folders`的值更改为`./src/plugin`。 (2)创建一个名为urls的目录,里面放一个txt文件,包含你要抓取的初始网址。在conf/nutch-site.xml中,添加`http.agent.name`...
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 1.x插件,允许对网页的入站和出站进行索引。 默认情况下,此插件会忽略那些主机与被索引网页的主机匹配的出站链接。 通过将以下内容添加到您的nutch-site.xml可以绕过此行为。 < name>outlinks.host.ignore...
总结来说,Nutch安装配置涉及Java环境、源码编译、Cygwin模拟环境(针对Windows用户)、Hadoop集成、Nutch配置、种子URL设置、执行生命周期管理和日志监控等多个环节。理解并熟练掌握这些步骤,将有助于顺利地搭建和...