写点什么

与 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:006957
用户头像

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

关注

评论

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

新版 Midjourney V7 支持语音生图;语音 AI 平台 Phonic 融资 400 万美元,构建自主端到端模型丨日报

声网

共探 AI 硬件未来图景,火山引擎“智变浪潮”技术沙龙圆满落幕

火山引擎边缘云

AIOT AI 大底座 AI 数据基础设施

去中心化云算力(PowerVerse)是如何提供算力服务的?

PowerVerse

智能合约 去中心化 算力 #区块链 AI‘’

户外全彩LED屏幕可以做成什么样的造型?

Dylan

广告 LED LED display LED显示屏 LED屏幕

什么是鱼骨图,怎么用AI制作鱼骨图?4个鱼骨图生成工具盘点!

职场工具箱

人工智能 效率工具 AI软件 AIGC 鱼骨图

升级数智底座:企业AI规模化应用的“中国解法”

用友BIP

科技 用友BIP 数智底座 国产大模型 企业AI

践行低碳行动!北京地铁签约用友

用友BIP

数智化 用友BIP 智能财务 北京地铁

Kube Scheduler 可观测性最佳实践

观测云

Kubernetes

《Operating System Concepts》阅读笔记:p586-p586

codists

操作系统

国产替代势不可挡:大型企业ERP国产替代的挑战与机遇

用友BIP

ERP 国产替代 用友BIP 数智底座

一篇论文,看见百度广告推荐系统在大模型时代的革新

百度Geek说

百度

第一期开讲!北京国家会计学院“数智财务高端人才”培养项目

用友智能财务

财经 会计

KubeEdge边缘设备管理系列(五):Mapper-Framework设备数据写入

华为云原生团队

云计算 容器 云原生

电力生产和供应业需要堡垒机的情形简单聊聊

行云管家

网络安全 信息安全 数据安全 等保 堡垒机

什么是BTC铭文?什么是MSKE马斯克铭文?

MSKE铭文

区块链 数字货币 MSKE铭文 马斯克铭文 比特币铭文

爬虫 API 科普:一文搞懂网络数据抓取的门道

代码忍者

API 接口

时序数据库 TDengine + Tableau,数据可视化一步到位!

TDengine

数据库 tdengine 时序数据库

腾讯云服务器怎么对接高防

网络安全服务

CDN DDoS 腾讯云服务器 高防IP DDoS 攻击

征文大赛 |「码」上数据库—— KWDB 2025 创作者计划启动

KaiwuDB

征文大赛 征文活动 征文投稿 数据库、 KaiwuDB 分布式多模数据库

初识华为RazorAttention

zjun

如何在线绘制roadmap路线图?5个简单易用的路线图软件盘点!

职场工具箱

在线白板 办公软件 AIGC 路线图 技术路线图

无需登录+离线调试,Apipost比Apifox更值得拥有

数据追梦人

如何在API中实现搜索和过滤功能

数据追梦人

实习期间如何提升留用概率?

王中阳Go

Go 实习 厚度按

shopee商品详情API接口(shopee API系列)

tbapi

Shopee shopee商品数据采集 shopee商品数据分析 shopee接口

三级等保测评的企业需要做什么准备?

黑龙江陆陆信息测评部

高质发展,匠心智造!狄耐克荣获“2025年度中国精工品牌”荣誉称号

新消费日报

Cursor 在前端需求开发工作流中的应用|得物技术

得物技术

前端 AI‘’ cursor

【等保小知识】等保3.0出了吗?啥时候发布的?

行云管家

网络安全 等保 等保测评

过剩与稀缺:现代社会的思考与启示

TechLead Studio

个人成长

飞机电气系统技术分析:数字样机技术引领创新

DevOps和数字孪生

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