写点什么

与 Julien Nioche 探讨基于 Apache Storm 的开源爬虫流水线 StormCrawler

  • 2016-12-26
  • 本文字数:1569 字

    阅读完需:约 5 分钟

Julien Nioche 是 DigitalPebble 公司的总监、PMC 成员和 Apache Nutch 网络爬虫项目的代码提交者。 StormCrawler 是一组可重用的组件,可以构建基于流式框架 Apache Storm 的分布式网络爬虫。Julien Nioche 就 StormCrawler 接受了我们的采访,谈了他的一些看法。

Nioche 是该项目的主要贡献者,InfoQ 采访他以了解更多关于 StormCrawler 的情况,以及在相同领域内它与其他技术相比有什么特点。

InfoQ:爬虫处理流水线在什么阶段可以受益于 StormCrawler?

Julien Nioche:StormCrawler 提供了代码和资源,可以用它来实现所有爬虫处理流水线的核心阶段,比如调度、获取、解析和生成索引等。它也为常用项目提供了可供调用的模块,比如 Apache Solr Elasticsearch MySQL 或者 Apache Tika 等。它还有一套可扩展的功能,可以用 XPath sitemaps 、URL 过滤器或语言识别等去做数据提取。

InfoQ:与其他爬虫技术,比如 Apache Nutch 和 Python 的 Scrapy 等相比较,StormCrawler 有什么特点?

Nioche:StormCrawler 是基于我开发 Apache Nutch 的经验开发的,很大程度上要归功于它,主要是一些概念(比如 FetcherBolt、URL 和解析过滤器的设计)和早期实现。StormCrawler 实现了 Nutch 的功能,并且像 Nutch 2.x 版一样,可以使用不同的后端数据库(HBase、Cassandra 等等)。

StormCrawler 和 Nutch 之间的主要区别是,后者基于(并且催生了)Apache Hadoop 项目,而且是批量驱动的。URL 提取、内容解析和生成索引都是作为单独的步骤完成的。这会导致当提取 URL 的时候,CPU 和磁盘的使用率相对较低,而网络流量高。而当解析或生成索引时则反之,CPU 和磁盘的使用率高,网络流量低。

与它相反,StormCrawler 基于流处理框架 Apache Storm 实现的,并且所有的操作都可以在同一时间进行:URL 提取、解析和生成索引都不断地并行进行。这就使整个爬取过程更加高效,而且没有长尾的工作量,而这是面向批处理方法的常见问题。与 Nutch 不同,处理内容不一定要保存在磁盘上(但如果必要的话也可以保存在磁盘上)。也可以用 StormCrawler 更容易地实现更丰富的用例,比如需要低延迟的时候,或者当 URL 成为流不断到达的时候(比如用户生成的事件,像访问页面等)。

把两者之间进行对比,我们可以发现 StormCrawler 运行在一个分布式的、可扩展的环境中,而 Scrapy 是单进程的,即使有像 Frontera 那样的项目去做分布式爬虫,。

StormCrawler 代表了 Apache Storm 的分布式和可靠性(再加上其他的功能,比如用户界面、指标框架和日志等)。

Scrapy 和 StormCrawler 都在力图实现用户友好性和为数据抓取提供好的解决方案。

总之我认为,StormCrawler 是 Nutch 的可扩展性和 Scrapy 的用户友好性的结合体。

InfoQ:爬取的工作量往往是 I/O 密集型的。与其他的替代品,比如 Apache Spark 或 Apache Flink 等相比,使用 Apache Storm 作为流处理框架的优势是什么?

Nioche:Apache Storm 设计和概念简单并且高效。Spark 那时还不存在。Spark 对数据进行小批量流处理的方式,及其声明式的风格并不非常适合我的需求。

爬行的主要挑战之一是礼貌,这个概念的意思是爬虫访问 Web 服务器的频率。与大多数的流式应用不同,它的目的并不只是尽可能快地获得尽可能多的信息,而是要有礼貌地执行但同时优化吞吐量。我们要进行更好的控制,Apache Storm 的机制恰好可以满足我们的需求。

InfoQ:StormCrawler 接下来的版本的路线图是什么?

Nioche:StormCrawler 的发展是由社区驱动的。最新发布的稳定版本是1.2,它是基于Storm 的1.x 版本开发的。下一个要发布的版本将包括语言识别模块,并且很有可能会提供一个新端口来支持 Elasticsearch 5 。在某种程度上即将发布的主要功能是实现基于 Selenium 的协议,这将适用于基于 Ajax 的网站。

查看英文原文 Julien Nioche on StormCrawler, Open-Source Crawler Pipelines Backed by Apache Storm

2016-12-26 18:006777
用户头像

发布了 152 篇内容, 共 72.9 次阅读, 收获喜欢 64 次。

关注

评论

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

精彩回顾 | DTC模式构建全域消费者增长指南

游读分享

Josh × 微帧科技,为印度TOP短视频平台提供视频编码服务

微帧Visionular

音视频 视频编码 音视频技术

PostgreSQL插件那么多,怎样管理最高效?

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

华为ISDP数字化现场作业亮相第十七届工程建设行业信息化发展大会

平平无奇爱好科技

震撼!阿里架构师全新产出Java面试突击宝典。我觉得泰库辣!

Java你猿哥

Java redis spring Spring Boot JVM

openGauss数据库源码解析系列文章——执行器解析(三)

区块链数字代币燃烧模式开发技术方案丨(成熟技术)

I8O28578624

路由器、网桥和交换机

测吧(北京)科技有限公司

测试

C4D渲染器到底该怎么选?

Finovy Cloud

C4D

让GitHub低头认错的这份阿里内部绝密Java面试八股文手册有多强?

Java你猿哥

Java 面试 ssm 面经 八股文

数仓实践丨主动预防-DWS关键工具安装确认

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

分布式多级缓存系统设计与实战

做梦都在改BUG

分布式 系统设计 多级缓存

今天一定要搞清楚Spring事务

做梦都在改BUG

Java spring Spring事务

Docker不香了?只能说阿里这套K8S手册更香

做梦都在改BUG

Java Kubernetes k8s

校园共享电单车是否值得投放

共享电单车厂家

共享电动车厂家 共享电单车投放 校园共享电动车 本铯共享电动车

使用 IDEA 远程 Debug 调试(一篇懂所有)

Java你猿哥

Java Spring Boot ssm IDEA

如果不知道这4种缓存模式,敢说懂缓存吗?

Java你猿哥

缓存 架构 ssm 架构设计 cache

带你了解关于FastAPI快速开发Web API项目中的模板和Jinja

华为云开发者联盟

微服务 前端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

用户订阅付费如何拆解分析?看这篇就够了

HarmonyOS SDK

HMS Core

百度APP iOS端包体积50M优化实践(二) 图片优化

百度Geek说

ios 开发语言 企业号 4 月 PK 榜

华为ISDP亮相长沙电力行业信息化年会,分享数字化转型实践与技术创新

平平无奇爱好科技

阿里“宝妈级”之作,这份Spring Security应用到源码手册,全是精华

做梦都在改BUG

Java spring spring security

深扒Sentinel背后的实现原理之后,我终于明白它为什么这么强了

Java你猿哥

Java spring ssm Sentine

软件测试/测试开发丨Pytest 自动化测试框架(四)

测试人

软件测试 自动化测试 测试开发 pytest

多位P8大牛联袂推出:国内最牛的Java面试八股,不接受反驳

Java你猿哥

Java 面试 ssm 面经 八股文

卧薪尝胆30天!啃透京东大牛的高并发设计进阶手册,终获P7意向书

做梦都在改BUG

Java 系统设计 高并发

阿里逆天级调优方案,内部这套Java性能调优实战宝典,堪称教科书

做梦都在改BUG

Java 性能优化 性能调优

Java 应用程序在 Kubernetes 上棘手的内存管理

Java你猿哥

Kubernetes JVM ssm requests limits

软件测试/测试开发丨Pytest 自动化测试框架(五)

测试人

软件测试 自动化测试 测试开发 pytest alure

强强联合,ByteHouse携手亚马逊云科技,新一代云数仓服务重磅升级

字节跳动数据平台

数据仓库 云原生 Clickhouse 企业号 4 月 PK 榜

泰库辣!京东首席架构师:亿级流量网站架构核心技术,肝完薪资飙升

Java你猿哥

架构 高可用 ssm 高并发 架构设计

与Julien Nioche探讨基于Apache Storm的开源爬虫流水线 StormCrawler_大数据_Alexandre Rodrigues_InfoQ精选文章