Julien Nioche谈Apache Nutch 2的特性及产品路线图

原文地址: http://www.infoq.com/cn/articles/nioche-apache-nutch2

开源的Web搜索框架Apache Nutch的2.1版本已于2012年10月5日发布,该版本的新特性包括:支持一些改进属性,用于更好地配置Solr;更新到各个Gora依赖;可以选择构建弹性搜索中的索引。Nutch既可以运行在单台服务器上,也可以用作大规模抓取平台运行在Hadoop集群上。

Nutch框架的2.0版本在经历了两年开发之后,已于今年7月发布,该版本以Apache Gora框架作为其存储抽象而构建。Apache Gora开源框架提供了一种内存数据模型,并支持大数据的持久化。它支持将数据持久化到列存储、键值存储、文档存储和关系数据库中,还可以利用大量Apache Hadoop的MapReduce支持工具来分析数据。在今年早些时候,Gora已成为Apache的顶级项目。

Nutch 2支持大数据存储方案,如分布式键值存储Apache Accumulo、数据序列化系统Apache Avro、列族数据存储Apache Cassandra、分布式大数据存储Apache HBase和Hadoop分布式文件系统(HDFS)。

 InfoQ采访了Apache Nutch项目的副总裁Julien Nioche,他也是DigitalPebble Ltd的主管。他将于2012年11月7日在Apache Conference Europe上介绍如何使用Nutch框架进行大规模抓取。

InfoQ:Apache Nutch framework的哪些方面使其适合NoSQL数据库和大数据领域?

Julien:Nutch的确是被打上了“大数据”的标签。一方面,Apache Hadoop就是产生自Nutch项目,而Apache Hadoop现在已经是用于大规模数据处理的事实上的标准框架。Nutch是为大规模Web数据抓取而设计的。有些用户使用由数以百计的服务器组成的集群来运行Nutch并保存了数十亿的页面。

至于它与NoSQL的关系,这正是Nutch 2要解决的问题。Nutch 1.x分支依赖于Hadoop数据结构,这非常适合批处理任务;而Nutch 2则依赖于Apache GORA来提供一个在各种NoSQL数据存储之上的统一前端。

InfoQ:Apache Gora框架也是出自Nutch项目。作为NoSQL数据库的一个ORM框架,你能否谈论一下它对应用程序开发人员有何帮助?

Julien:我喜欢把GORA当作“NoSQL数据库的JDBC”,因为它在存储之上提供了一层抽象,允许开发者编写独立于任何特定API的代码。GORA的部分API也提供了一种在不同后端之上的MapReduce API,此外还有一种基于Apache AVRO的序列化机制。当然,它也支持基本的GET-PUT-DELETE等原子操作。

Apache GORA现在是2.1版本了,支持HBase、Cassandra和Accumulo等数据存储,而且它还有一个SQL模块!这意味着用户可以在MySQL数据库之上运行MapReduce,一些Nutch 2用户正是这么做的。实际上,通过Nutch 2我们也发现,人们喜欢不同的存储方式,因此GORA是非常有用的。

InfoQ:最新的版本也支持HTML解析,这是利用Apache Tika框架来处理的。你能详细描述一下这一特性是如何工作的吗?

Julien:Apache Tika是一个用Java实现的开源库,支持从多种格式中(如HTML、PDF和Word等)抽取文本和元数据,也能用于语言和MIME类型识别。 实际上它就是现有的第三方解析器(如PDFBox)的包装器,只是提供了一个统一的API来使用这些解析器。在Nutch 1.x分支和Nutch解析器遗留系统中,Tika已经有所应用了,因此它并不是Nutch 2.0中的新东西。有趣的是,就像Hadoop和GORA一样,Apache Tika是也是一个脱胎于Nutch的项目。

InfoQ:在即将发布的版本和特性方面,Nutch项目未来的路线图是什么样的?

Julien: Nutch的发布并没有遵循一个严格的时间表。基本上是这样,当我们认为大部分工作已经完成时,就会发布新的版本,而工作的完成又要依赖于有多少贡献者参与和用户最快要多久才能采用新项目等因素。Nutch 1.x和2.x必定会共存一段时间,直到2.x完全成熟为止。尽管如此,它们的发布不太可能完全同步。近来,我们平均每年发布两个版本,但随着2.x版吸引力的增加,我们可能会加快新版本发布的频率。

至于特性,最重要的一个就是升级到SOLR 4,再就是它的云功能。我们可能也会看到更多的功能将委托给第三方项目,比如Crawler Commons,这样其他项目就能复用并改进代码了。我们也考虑过将索引后端变为可插拔的:虽然目前只支持SOLR(2.x版支持ElasticSearch),但是我们希望开发者能够使用插件机制编写新的索引后端,这样就无需捆绑Nutch代码了。把网页排名功能交给Apache Giraph等图库,我们可以少编写很多代码,而且更有效率。我希望将大部分精力放在巩固2.x的代码上。

他也谈到了完成这一项目所用的十年:

Julien:Apache Nutch最近已经10岁了,对软件而言,这已经算很老了。为什么它仍然存在呢?我想原因是,它能够把要做的事情做好,并且没有试图重复发明轮子。有趣的是,现在很多源自Nutch的项目,如Hadoop或Tika等,它们的发展也让Nutch获益匪浅。我希望这一切也会出现在GORA身上。Nutch 2的开发非常激动人心,而且我们看到非常多的新用户选择了它。在开发过程中,不断有新的贡献者和提交者加入进来,而这正是一个项目健康的标志。

7月份,Apache Nutch团队宣布发布了Nutch v1.5.1。这是Nutch 框架1.5.x主干版本的一个维护性发布。具体信息见该版本的修改列表。该搜索框架可以从网络上下载。Nutch的文档和教程等资料请参见项目的wiki页面。

关于被采访人

Julien Nioche是DigitalPebble Ltd的创始人,这是一家位于英国布里斯托尔的咨询公司,专注于为文本工程提供开源解决方案。Julien的专长涉及信息检索、文本分析、信息抽取、自然语言处理和机器学习等领域。他还是Apache Nutch项目的副总裁、Apache Tika和Apache Gora的提交者以及其他一些开源项目的贡献者。

 

 

查看英文原文:Julien Nioche on Apache Nutch 2 Features and Product Roadmap

时间: 2024-09-01 16:15:28

Julien Nioche谈Apache Nutch 2的特性及产品路线图的相关文章

LibreOffice 4.1正式版引入了Apache OpenOffice的新特性

LibreOffice 4.1 发布 了.更多关于 4.1 版本的改进可以查看 New Features and Fixes 页面.同时 LibreOffice 4.1 引入了很多 Apache OpenOffice 的新特性,例如 Symphony 边栏,目前还是体验阶段.目前 LibreOffice 开发者正在开发集成部件布局技术. LibreOffice是一套可与其他主要办公室软体相容的套件,可在各种平台上执行.计画目标是成为一个具ODF的支援,独立 于任何厂商之外,没有任何版权要求的办公

Apache Nutch v1.3发布 开源Java实现的搜索引擎

Apache Nutch是一个开源Java 实现的搜索引擎.它提供了我们运行自己的搜索引擎所需的全部工具.包括全文搜索和Web爬虫. Apache Nutch 1.3发行说明: * NUTCH-995 Generate POM file using the Ivy makepom task (mattmann, jnioche, Gabriele Kahlout) * NUTCH-1003 task 'package' does not reflect the new organisation

Vaadin v6.5.0发布 使用Apache V2许可协议的开源产品

Vaadin 是一款使用 Apache V2 许可协议的开源产品,它由位于芬兰的 IT Mill 公司开发.其前身是 IT Mill 公司由 2000 年起开始研发的 Millstone 用户界面类库.2006 年,IT Mill 公司以 IT Mill Toolkit 作为正式名称发布了它的 Release 4 版本,这个版本中包含了全新的基于 Ajax 的表现层引擎,使开发人员在开发 Ajax 应用程序时无需关注客户端与服务器端的通讯.2007 年末,IT Mill 使用 GWT 技术完全重

谈Apache OFbiz 会员模块表结构设计

数据库表的结构设计可谓是ofbiz除技术框架之外,另一个非常值得学习的方向.这篇文章我们来谈谈ofbiz对电子商务会员表的设计. PARTY ofbiz对人.团体进行了抽象,称之为party,翻译为中文称之为"会员"(但我觉得抛开领域,如果你也有相关的设计需求,在其他领域可能称之为团体更合适).会员在ofbiz被设计为一个抽象的概念(对应到面向对象设计中,你可以称其为一个基类),它有两个具体的延伸(继承者):分别是PERSON以及PARTY_GROUP.数据库的E-R图: 这里PERS

浅谈关于JavaScript的语言特性分析_javascript技巧

前言在JavaScript中,作用域.上下文.闭包.函数等算是精华中的精华了.对于初级JSer来说,是进阶必备.对于前端攻城师来说,只有静下心来,理解了这些精华,才能写出优雅的代码. 本文旨在总结容易忘记的重要知识,不会讲基本的概念.如果对基本知识不太熟悉,就去翻下< JavaScript权威指南>吧~ 语言特性函数表达式 先看代码段: 复制代码 代码如下: [javascript] view plaincopyprint?var f = function foo(){      return

浅谈php7的重大新特性_php技巧

截止到目前为止,PHP官方已经发布了php7的RC5版本,预计在11月份左右会发布第一个正式版本!现在来说php7的重大特性肯定已经是定型了,不会再有什么变动了.后续一些版本的迭代主要也就是修修bug,优化之类的.下面就来说话我们一直期待的php7会有那些主要的变化了... 新特性预览 ZEND引擎升级到Zend Engine 3,也就是所谓的PHP NG 增加抽象语法树,使编译更加科学 64位的INT支持 统一的变量语法 原声的TLS - 对扩展开发有意义 一致性foreach循环的改进 新增

浅谈apache和nginx的rewrite的区别_php技巧

1. Nginx Rewrite规则相关指令 Nginx Rewrite规则相关指令有if.rewrite.set.return.break等,其中rewrite是最关键的指令.一个简单的Nginx Rewrite规则语法如下: rewrite ^/b/(.*)\.html /play.php?video=$1 break; 如果加上if语句,示例如下: if (!-f $request_filename) { rewrite ^/img/(.*)$ /site/$host/images/$1

一起谈.NET技术,C#特性Attribute的实际应用之:代码统计分析

日常工作中,需要为程序集提供统计分析: 1:程序集方法数: 2:开发人员数目及各自所开发或REVIEW的方法数: 3:测试中,被标注有BUG的数目: 4:直接查看方法的IL代码: 鉴于以上统计的需要,特开发本EXE. 1:关于特性Attribute的知识补充 "Attribute是一种可由用户自由定义的修饰符(Modifier),可以用来修饰各种需要被修饰的目标".它的作用是为它们的修饰目标追加上一些额外的信息--比如"这个类是我写的"或者"这个函数以前出

浅谈Apache Spark的6个发光点

Spark是一个基于内存计算的开源集群计算系统,目的是更快速的进行数据分析.Spark由加州伯克利大学AMP实验室Matei为主的小团队使用Scala开发开发,其核心部分的代码只有63个Scala文件,非常轻量级. Spark 提供了与 Hadoop 相似的开源集群计算环境,但基于内存和迭代优化的设计,Spark 在某些工作负载表现更优秀. 在2014上半年,Spark开源生态系统得到了大幅增长,已成为大数据领域最活跃的开源项目之一,当下已活跃在Hortonworks.IBM. Cloudera