Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux编程 > » 正文

Apache Nutch 1.3 学习笔记十(Ntuch 插件机制简单介绍)

来源: 未知 分享至:

 

Nutch中,大量的可扩展的部分都使用了插件来做,如网页下载时所用的协议选择,解析不同类型的网页,url的过滤和规范化都使用了Nutch的插件机制。
  Nutch
中插件的主要目标是:

  1.   可扩展性:用户可以通过实现相应的接口来生成自己的扩展插件
  2.   灵活性:任务人都可以参与插件的编写。
  3.   可维护性:插件的开发者只要实现相应的扩展接口,而不需要关注插件的内部原理。

  下面对其原理和代码做一个简单的分析。

1. 一些概念

1.1 插件仓库(PluginRepository)

插件仓库是一个所有插件的注册器,在系统启动时,这个仓库是通过分析插件目录中所有插件的mainfest文件来生成。对于每一个插件都会生成一个插件描述实例,它包含了每一个插件的元数据,所以插件的真正的实例会在用的时候再来创建,也就是所谓的延迟插件载入机制(lazy plugin loading)

 

1.2 插件(Plugin)

Nutch中的插件实际上是一系列自定义逻辑的容器,而这些自定义逻辑为Nutch的核心功能提供扩展和为其它插件提供扩展API。一个插件要提供一个或者一组扩展。而对于扩展点来说(ExtensionPoints)来说,这些扩展都可以被看做是一组可以被动态加载的监听器。每一个具体的插件都扩展自基类Plugin,而这些实例又被用于去管理相关功能的生命周期。插件打开与关闭都由Nutch的插件管理系统来操作。

1.3 扩展(Extension)

扩展相当于一种被安装在具体的扩展点(ExtensionPoint)上的监听描述符,这里的扩展点扮演了一个发布者的角色。

 

1.4 扩展点(ExtensionPoint)

扩展点提供了一类具体功能扩展的元信息,它包含了具体的扩展。

1.5 插件描述符(PluginDescriptor)

插件描述符提供了一种对于Nutch所插件元数据的一种描述,它包含了国际化资源和插件本自的classloader。而这些元数据包含了插件(Plugin)、插件扩展点(ExtensionPoint)和扩展(Extension).而这里为了能够通过插件描述符来管理元数据,提供了一种延迟加载机制。

2. 使用bin/nutch运行插件

   本机运行出现的帮助
   

  1. lemo@debian:~/Workspace/java/Apache/Nutch/nutch-1.3$ bin/nutch plugin   
  2.     Usage: PluginRepository pluginId className [arg1 arg2 ...]  


   
这里主要有三个参数:

  •    pluginId:这个是插件的id号,它是每一个插件目录中的plugin.xml文件里里面plugin标签中的id属性
  •    className:这是扩展插件的类全
  •    args:这是插件main函数的参数



一个简单的调用protocoal


Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史