Linux 之父出席、干货分享、圆桌讨论,精彩尽在 OpenCloudOS 社区开放日,报名戳 了解详情
写点什么

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

  • 2012 年 11 月 28 日
  • 本文字数:2301 字

    阅读完需:约 8 分钟

开源的 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

2012 年 11 月 28 日 07:183676
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 121.6 次阅读, 收获喜欢 30 次。

关注

评论

发布
暂无评论
发现更多内容

VoltDB让Kafka支持复杂数据流驱动的实时业务决策

VoltDB

数据库 kafka 分布式系统 VoltDB

对话京东科技算法科学家吴友政:回望2020,NLP技术发展速度强劲

京东科技开发者

人工智能 自然语言处理

几幅图拿下 ARP 协议

飞天小牛肉

Java 程序员 计算机网络 网络协议 2月春节不断更

缓存设计的好,服务基本不会倒

万俊峰Kevin

缓存 微服务 microservice Go 语言

架构师训练营第六周作业

跳蚤

搜索引擎简述

跳蚤

字节跳动面试必问:从外包月薪5K到阿里月薪15K,学习路线+知识点梳理

欢喜学安卓

android 程序员 面试 移动开发

产品经理训练营笔记-业务流程与产品文档(一)

.nil?

产品经理训练营

大作业二-请用思维导图画出架构师训练营所有技术知识点

未来已来

week11-homework

J

2. 无门槛学会数据类型与输入、输出函数,滚雪球学 Python

梦想橡皮擦

Python python 爬虫 2月春节不断更 python入门

Kubernetes 原生 CI/CD 构建框架 Tekton 详解

字节跳动 Kubernetes 云原生 Tekton CI/CD

前端开发:Node版本引起的报错问题

三掌柜

vue.js 大前端

架构师训练营第2期 大作业 (一)

月下独酌

架构师训练营第2期

Elasticsearch 分页搜索以及 deep paging 性能问题

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

最好的IDEA debug长文?看完我佛了

YourBatman

eclipse debug IntelliJ IDEA 远程调试

字节跳动架构师讲解Android开发!2021年展望Android原生开发的现状,分享一点面试小经验

欢喜学安卓

android 程序员 面试 移动开发

排查指南 | 当 mPaaS 小程序真机扫码时提示 "应用更新错误(50002)"

蚂蚁集团移动开发平台 mPaaS

小程序 问题排查 mPaaS

从云数据迁移服务看MySQL大表抽取模式

华为云开发者联盟

MySQL JVM JDBC 数据迁移

一文总结GaussDB通信原理知识

华为云开发者联盟

数据库 通信 框架 GaussDB 计算

Spring Boot 微服务性能下降九成!使用 Arthas 定位根因

阿里巴巴云原生

Java 微服务 云原生 中间件 Arthas

Arthas 使用的各类方式

阿里巴巴云原生

Java 微服务 云原生 中间件 Arthas

Serverless 场景下 Pod 创建效率优化

阿里巴巴云原生

Docker Serverless 容器 云原生 k8s

Ebean ORM框架介绍-1.增强注解

Barry的异想世界

Spring Boot jpa ORM Ebean

逼疯UE设计师,不可不知的提升产品用户体验的10个测试方法

华为云开发者联盟

产品 测试 UI 用户体验

无意间发现 Google 代码模板,分享给大家!

C语言与CPP编程

c++ JavaScript objective-c 代码规范 Python 编码格式

中国移动工程师浅析:KubeEdge在国家工业互联网大数据中心的架构设计与应用

华为云开发者联盟

大数据 数据采集 工业智能体 边缘数据中心管理 EDCM

从0到1实现一个简单计算器

codevald

Java 项目 计算器 动手实践

week11-conclusion

J

前端必学必会-多媒体-本地存储-浏览器与服务器的交互-通信功能

我是哪吒

学习 程序员 面试 大前端 2月春节不断更

GPU容器虚拟化:用户态和内核态的技术和实践详解

GPU容器虚拟化:用户态和内核态的技术和实践详解

Julien Nioche谈Apache Nutch 2的特性及产品路线图_Java_Srini Penchikala_InfoQ精选文章