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集群上。git

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)。apache

 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

相关文章
相关标签/搜索