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 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 on Apache Nutch 2 Features and Product Roadmap
Julien Nioche谈Apache Nutch 2的特性及产品路线图的更多相关文章
- Apache Nutch v2.3 发布,Java实现的网络爬虫
http://www.oschina.net/news/59287/apache-nutch-2-3 Apache Nutch v2.3已经发布了,建议所有使用2.X系列的用户和开发人员升级到这个版本 ...
- Apache Nutch build文件解析
本文目的:分析Apache Nutch 1.9的build.xml文件,从而让读者了解nutch的build全部流程
- 【Apache Nutch系列】Nutch2.0配置安装异常集锦
1.java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration Exception in thread &qu ...
- http服务器搭建之apache与nginx的特性
一.了解一些简单的概念 HTTP服务器程序: httpd(apache) nginx lighttpd(功能和nginx差不多,活跃度不如ng) 应用程序服务器: IIS Tomcat(开源jsp容器 ...
- Tomcat学习总结(9)——Apache Tomcat 8新特性
一.Apache Tomcat 8介绍 Apache Tomcat 8RC1版于2013年8月份发布.它 经过了2年的开发,引入了很多新特征,由于目前还只是Alpha版,故不推荐在产品中使用.但是我们 ...
- Apache Kylin的架构特性
不多说,直接上干货! http://kylin.apache.org/cn/ 可扩展的超快OLAP引擎,提供标准SQL查询接口 支持单机或集群部署,为减少在Hadoop上百亿规模数据查询延迟而设计: ...
- 且谈 Apache Spark 的 API 三剑客:RDD、DataFrame 和 Dataset
作者:Jules S. Damji 译者:足下 本文翻译自 A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets ,翻译已 ...
- 浅谈Apache Spark的6个发光点(CSDN)
Spark是一个基于内存计算的开源集群计算系统,目的是更快速的进行数据分析.Spark由加州伯克利大学AMP实验室Matei为主的小团队使用Scala开发开发,其核心部分的代码只有63个Scala文件 ...
- Apache kafka原理与特性(0.8V)
前言: kafka是一个轻量级的/分布式的/具备replication能力的日志采集组件,通常被集成到应用系统中,收集"用户行为日志"等,并可以使用各种消费终端(consumer) ...
随机推荐
- Eclipse将android项目打包jar文件
Eclipse+android打包jar文件 蔡建良 2016-3-12 以Android-SlideExpandableListView开源框架为例,将源码Library打包成jar文件并包含R.c ...
- .NET 里操作Excel 出现有些列的数据取不到的问题
错误重现: ----------------------------------------------------------------------- 在导入Excel读取数据时,其中的一个字段保 ...
- LoadRunner--内存指标介绍
Threads——线程数当前全部线程数============================================ Available MBytes——物理内存的可用数指计算机上可用于运行 ...
- 如何查看python selenium的api
1. 打开命令行: command+R2. 输入: python -m pydoc -p 4567,然后:Enter3. 然后在浏览器中访问http://localhost:45674. 按ctrl+ ...
- Selenium2Library系列 keywords 之 _SelectElementKeywords 之 unselect_from_list_by_value(self, locator, *values)
def unselect_from_list_by_value(self, locator, *values): """Unselects `*values` from ...
- Dzz任务板初版完成笔记-仿trello私有部署的一款轻量团队任务协作工具。
刚完成了第一个版本Dzz任务板的设计开发,记录下设计思路和完成情况. Dzz任务板是DzzOffice中的团队协作套件中的一款应用,它需要安装在DzzOffice中使用. 主界面中需要能够快速简单的创 ...
- static_cast .xml
pre{ line-height:1; color:#1e1e1e; background-color:#d2d2d2; font-size:16px;}.sysFunc{color:#627cf6; ...
- 插入排序 --- 排序算法 --- 算法 --- java
设数组为a[0…n-1]. 1. 初始时,a[0]自成1个有序区,无序区为a[1..n-1].令i=1 2. 将a[i]并入当前的有序区a[0…i-1]中形成a[0…i]的有序区间 ...
- 二叉树单色路径最长&&穿珠子
对树的操作,特别理解递归的好处. //对于一棵由黑白点组成的二叉树,我们需要找到其中最长的单色简单路径,其中简单路径的定义是从树上的某点开始沿树边走不重复的点到树上的 //另一点结束而形成的路径,而路 ...
- 两个实用的Python的装饰器
两个实用的Python的装饰器 超时函数 这个函数的作用在于可以给任意可能会hang住的函数添加超时功能,这个功能在编写外部API调用 .网络爬虫.数据库查询的时候特别有用 timeout装饰器的代码 ...