- 浏览: 283686 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (247)
- free talking (11)
- java (18)
- search (16)
- hbase (34)
- open-sources (0)
- architect (1)
- zookeeper (16)
- vm (1)
- hadoop (34)
- nutch (33)
- lucene (5)
- ubuntu/shell (8)
- ant (0)
- mapreduce (5)
- hdfs (2)
- hadoop sources reading (13)
- AI (0)
- distributed tech (1)
- others (1)
- maths (6)
- english (1)
- art & entertainment (1)
- nosql (1)
- algorithms (8)
- hadoop-2.5 (16)
- hbase-0.94.2 source (28)
- zookeeper-3.4.3 source reading (1)
- solr (1)
- TODO (3)
- JVM optimization (1)
- architecture (0)
- hbase-guideline (1)
- data mining (3)
- hive (1)
- mahout (0)
- spark (28)
- scala (3)
- python (0)
- machine learning (1)
最新评论
-
jpsb:
...
为什么需要分布式? -
leibnitz:
hi guy, this is used as develo ...
compile hadoop-2.5.x on OS X(macbook) -
string2020:
撸主真土豪,在苹果里面玩大数据.
compile hadoop-2.5.x on OS X(macbook) -
youngliu_liu:
怎样运行这个脚本啊??大牛,我刚进入搜索引擎行业,希望你能不吝 ...
nutch 数据增量更新 -
leibnitz:
also, there is a similar bug ...
2。hbase CRUD--Lease in hbase
觉得这块也是蛮重要的,所以得要认真学了。
但检索到网上讲得不是很清楚,要么就是背书一样;要么 就是没深入到点子上。
这里可以说 是作为一种扩展吧,希望可以对那么有所额外的补充。
一.概念
PluginClassloader:利用self-defined的来指定具体的loader,只是名称变了,其实是URLClassLoader,因为plugin所依賴 的libs及files均转换file to url形式来加载的。
PluginRepository:plugin的管理类,可以说是代理吧,重头戏的是将所有的plugin.xml解析封装,所以它包含很多形如
PluginDescriptor,Plugin,Point等cached maps.
Plugin:在plugin.xml中,用户可以定义一个customerized的class(必须继承Plugin.java),来扩展默认的实现(默认的start(),shutdown()是不做任何事的)。所以其实就是一个plugin.xml对应一个Plugin.另外,它内置了PluginDescriptor,所以说,Plugin与PluginDescriptor是1对1关系.一个Plugin可以被安装和御载。
PluginDescriptor:与Plugin是对应的,它包含了一个plugin.xml的metadata,extension-points(只有nutch-extensinos/plugin.xml才有),exportedlibs,notexportedlibs,PluginClassloader等等。其实这此属性基本上就是xml中的属性。
ExtensionPoint:只有nutch-extensions/plugin.xml中才有此定义,它表明nutch的一个内置class或interface,用户真正扩展的是这些接口。当然了,因为一个point可以被多个customerized classes来实现,所以其中也含有若干extension(s)。
Extension:在一个plugin.xml中,可以有若干个extension元素 ;而每个元素下也可以有若干个implemention元素。这样的情况可以在若干个plugin.xml有同样的定义,那么Extension(s)可以认为是所有这些implemention(s)。即事实上,point与extension是1对多的关系。因而它包含Plugindescriptor,point,class和params等variables.
plugin.dtd:一个plugin.xml的document type definition
nutch-default.xml:包含plugin的excludes & includes plugin,加载plugins顺序等参数默认配置。
nutch-site.xml:site special configs
--举例说明--
QueryFilter:extension point
BasciQueryFilter: 具体的一个point实现之一
path-to-plugin/plugin.xml:真正的实现point(s)的所有配置文件
nutch-extension/plugin.xml:nutch core extension points,其它plugin.xml下的point值必须在这里定义过才起作用。
二. 配置/数据结构
nutch-extensions/plugin.xml
<plugin id="nutch-extensionpoints" name="the nutch core extension points" version="0.8.0" provider-name="nutch.org"> <!-- this file hosts all extension points nutch core code offers. Please not(note?) that plugins can define extension points as well to be extendable. 这里的id就是相应plugin.xml下的extension.point属性! --> <extension-point id="org.apache.nutch.clustering.OnlineClusterer" name="Nutch Online Search Results Clustering Plugin"/> <extension-point id="org.apache.nutch.indexer.field.FieldFilter" name="Nutch Field Filter"/> ... </plugin>
other plugin.xml,for example query-basic/plugin.xml:
<!--global:plugin (runtime?, requires?, extension-point*, extension*)-->
<!-- plugin:id,name,version are must;class is optiona
l -->
<plugin
id="query-basic"
name="Basic Query Filter"
version="1.0.0"
provider-name="nutch.org">
<!--运行时由classloader加载和实例的包,可以说是由ant生成的包名;
所以export表明此包应该导出的文件
-->
<runtime>
<library name="query-basic.jar">
<export name="*"/>
</library>
</runtime>
<!--运行此plugin需要用到的依赖points;这里是nutch的core point-->
<requires>
<import plugin="nutch-extensionpoints"/>
</requires>
<!--extension:此plugin实现point的extention(s),point是必须的且在nutch-extensiionpoints/plugin.xml
中有定义;id可以不唯一,也没有用到 -->
<!-- implementation:实现此point的类,both id and class are must
实际处理时会将一个implemention作一个Extention实例处理,
-->
<!-- parameter:此extention在运行时用到的KV常量,可选但对extensino唯一 -->
<extension id="org.apache.nutch.searcher.basic"
name="Nutch Basic Query Filter"
point="org.apache.nutch.searcher.QueryFilter">
<implementation id="BasicQueryFilter"
class="org.apache.nutch.searcher.basic.BasicQueryFilter">
<parameter name="fields" value="DEFAULT"/>
</implementation>
</extension>
</plugin>
nutch-site.xml
<property> <name>plugin.includes</name> <value>protocol-http|urlfilter-regex|parse-(text|html)|index-(basic|anchor)|query-(basic|site|url)|response-(json|xml)|summary-basic|scoring-(link|opic)|urlnormalizer-(pass|regex|basic)</value> <description>NOTE:THIS VALUE MANYE HAVE BEEN CHANGED!. </description> </property> <property> <name>plugin.folders</name> <!-- crawl/产品环境--> <value>plugins</value> .... </property> ...
三.运行流程
四.小结
插件这块也是繁锁的,刚看时会很晕,很多相关的类说明不够詳細,对应关系没说清楚。
不过话又说回来 ,其实想知道一个class的功能也容易的,只要看name和其中的fields也基本上清楚了,因为无非就是一个输入,处理,输出的过程;两者看看相关的methods就有个基本。
机制特点:
*使用lazy loading原则提交效率;
*使用1:n方式,只要定义好point,就可以在xml指定多个implementions,灵活方便;
*使用缓存形式提交效率;
*支持依赖性检查,避免代码重复冗余;
*灵活的过滤机制 ,减少直接代码处理引起 的风险;
references:
发表评论
-
nutch 几种搜索布署
2011-12-29 13:21 8721。这是最简单的一种布署方式,通常用于简单测试。 ... -
nutch搜索架构关键类
2011-12-13 00:19 14todo -
nutch结合hadoop解説 RPC机制
2011-12-13 00:18 895todo -
nutch搜索架构关键类
2011-12-13 00:17 1139在整个crawl->recrawl ... -
访问hadoop数据时注意相对路径问题
2011-12-07 00:30 1423今天在nutch配置分布式搜索时出现搜索不到結果,背景是: ... -
nutch 发布时要注意的问题
2011-12-04 23:40 1859在利用Nutch自身的ant打 ... -
nutch 中的trie tree 算法简介
2011-11-18 14:18 945todoo -
nutch 配置文件详解
2011-11-17 16:58 2169下面来分析 一下,conf目录下各文件的作用是怎样的: cr ... -
nutch 分布式索引(爬虫)
2011-10-19 00:15 3848其实,全网抓取比intranet区别再于, 前者提供了较 ... -
nutch 分布式搜索-cluster-hdfs index
2011-10-17 02:14 1369此过程也很简单,步骤是: a.put the indexes ... -
nutch 分布式搜索-cluster-local index
2011-10-17 02:13 782此过程亦相当简单,只是修改一下search-servers.t ... -
nutch 分布式搜索-standalone mode
2011-10-17 01:47 970本地模式篇,其实就是相当 于之前图中的虚线部分。詳細如下 ... -
nutch对某个contentType文档进行解析的流程--html
2011-09-22 23:44 992经过上一遍contentType流程 介绍后,现在进入具体的 ... -
nutch对某个contentType文档进行解析的流程
2011-09-04 12:48 1673nutch支持对诸多的文档 ... -
nutch 处理robots.txt原理
2011-08-28 16:42 1711形如大多SE一样,在bot ... -
nutch analyzers 使用机制
2011-07-31 14:35 823一。索引时analyzer 我们知道,在Indexer ... -
nutch 数据增量更新
2011-07-22 19:25 3029以下是转载的执行recrawl的脚本(其实还是可以再优化的,比 ... -
nutch 评分机制
2011-07-22 02:28 1755其实nutch的评分机制有二部分,与通常的SE类似: 1 ... -
nutch 搜索site dedup
2011-07-22 01:41 887这个版本发现有个大大的bug,就是搜索时同一页面出现重复,不同 ... -
nutch 搜索流程 2-distributed search
2011-07-20 13:55 997了解了local search ,那么进行distribute ...
相关推荐
**Plugins机制** oryx.js提供了一个插件架构,允许开发人员根据需求添加自定义功能。这些插件可以扩展编辑器的行为,例如添加新的图形元素、修改默认行为或者集成其他服务。这种灵活性使得oryx能够适应各种复杂的...
6. **Plugins**: Ansible 的 Plugins 机制允许扩展其功能,包括插件类型如回调、过滤器、变量等,以适应不同的工作流程和场景。 ### Ansible 1.7.2 特性 在 Ansible 1.7.2 版本中,可能包含以下特性: 1. **改进...
此外,理解Jenkins的插件管理机制也很重要。Jenkins通过`/usr/share/jenkins/ref/plugins/`目录(在某些系统中可能是`/var/jenkins_home/plugins/`)来保存插件的初始版本,这被称为“默认插件”。当Jenkins启动时,...
首先,Eclipse作为一个开放源码的平台,其核心功能主要通过插件机制来实现。"plugins1"很可能包含了一系列针对C++开发的插件,这些插件能够提供语法高亮、自动完成、调试工具、代码分析等功能,极大地提升了开发效率...
6. **插件管理**:许多应用提供了内置的插件管理机制,允许用户安装、禁用、更新插件。这包括插件市场的访问,以及对已安装插件的配置和控制。 7. **安全考虑**:尽管插件带来了诸多便利,但也可能引入安全风险。不...
《Nagios插件nagios-plugins-1.4.14详解》 Nagios是一款广泛使用的开源网络监控系统,它能够实时监控网络服务、主机状态以及各种系统资源,及时发现并报告问题,确保系统的稳定运行。而nagios-plugins是Nagios的...
5. **错误处理和日志记录**:增强了错误处理机制,提供详细的日志记录,方便开发者调试和排查问题。 使用"XDoclet-plugins-1.0.3",开发者可以专注于业务逻辑的实现,而不必担心安全配置的复杂性。它使得OA系统的...
不同的平台(Windows、macOS、Linux等)可能有不同的硬件加速机制,这些都在插件中得以实现。 5. **二次开发接口**:对于开发者来说,VLC的插件系统提供了丰富的API和SDK,允许开发人员编写自定义插件以扩展VLC的...
同时,它有一个持续更新的机制,确保你可以获取到最新的插件版本和修复。 **5. 使用技巧** 在使用JMeter Plugins时,应注意以下几点: - **资源需求**:某些插件可能增加JMeter的内存消耗,因此在配置JMeter时要...
"nagios-plugins-2.3.3.tar.gz" 是一个包含了Nagios官方插件的压缩包,版本为2.3.3,是经过广泛测试和验证的稳定版本。 在深入探讨Nagios插件之前,我们需要了解Nagios的基本架构。Nagios服务器会定期或按需向各个...
其核心功能在于提供警报机制,当系统出现异常时,能够及时通知管理员。而nagios-plugins则是Nagios生态系统中的重要组成部分,它们是一系列用于检查不同服务和资源状态的插件,通过这些插件,Nagios可以监测各种服务...
在使用MyBatis-Plugins之前,首先需要理解MyBatis的拦截器(Interceptor)机制。拦截器是一种设计模式,它可以在方法调用前后插入额外的处理逻辑。在MyBatis中,通过实现Interceptor接口并重写其intercept()方法,...
5. **错误处理与调试**: SDK通常提供错误处理机制,帮助开发者追踪和修复程序中的问题。 **plugins文件夹** VLC的插件系统是其强大功能的核心。plugins文件夹包含了VLC运行所需的解码器、编码器、过滤器和其他模块...
综合来看,"CTG Plugins.zip" 提供了一个完整的自动点击工具,利用JavaScript、jQuery和浏览器扩展机制,实现对网页的自动化点击操作。用户可以通过设置界面定制其功能,而插件的后台脚本则持续监控和执行这些设定,...
5. **可扩展性**:XDoclet的插件机制使得它具有很高的可扩展性。开发者可以根据自己的需求编写新的插件,处理自定义的注解,实现更个性化的功能。 6. **集成开发环境支持**:虽然XDoclet最初是在命令行下使用的,但...
Nagios的核心在于其强大的插件机制,而nagios-plugins-1.4.13就是这些插件的一个重要版本。本文将深入探讨nagios-plugins-1.4.13及其在Nagios监控体系中的作用。 一、Nagios插件概述 Nagios插件是Nagios系统功能的...
Unreal Engine的插件系统允许开发者根据项目需求创建或安装第三方插件,这些插件可以是图形用户界面(GUI)的增强,如新的编辑器窗口、按钮或工具栏按钮,也可以是动画系统、物理模拟或其他游戏机制的扩展。...
6. **错误检查与调试**:集成的错误检查机制能在编写代码时即时反馈问题,方便调试和修复,提高开发质量。 7. **版本控制**:与Sublime Text3的版本控制集成,如Git,使得项目版本管理和协同更加顺畅。 8. **...
5. **其他辅助功能**:还包括了对JMeter脚本的增强,如自动重试机制、更丰富的日志记录选项等,以提高测试效率和可维护性。 总之,JMeterPlugins-Extras-1.3.1是JMeter测试者的一大福音,它通过提供一系列附加组件...
"nagios-plugins-release-2.2.1.tar" 是Nagios插件的发布包,版本号为2.2.1。这个压缩文件包含了用于扩展Nagios核心功能的各种插件,使监控能力更为全面和深入。 Nagios的核心功能包括监测网络设备(如路由器、...