Apache Storm 是一个免费、开源的分布式实时计算系统,面向无界数据流的持续处理。它将数据流组织到拓扑中,在各个计算阶段之间按需要重新分配数据,并以可靠、容错的方式完成实时计算。官网将它定位为实时处理领域对应 Hadoop 批处理能力的系统,适用于实时分析、在线机器学习、连续计算、分布式 RPC 和 ETL 等场景。Apache Storm 支持使用任意编程语言,并能够接入已有的队列与数据库技术。
核心功能
无界数据流处理
Apache Storm 用于处理持续到达、没有固定终点的数据流。拓扑会消费数据流,并按照计算需求在不同处理阶段之间重新分区和传递数据,因此可以组织复杂的实时处理流程。官网将这种能力概括为可靠地处理无界数据流,而不是只处理一次性批量数据。
分布式实时计算拓扑
Apache Storm 的处理单元以 topology 的形式组织。官网配图展示了由 spouts 和 bolts 构成的 Apache Storm topology;主页说明拓扑负责消费数据流,并在每个计算阶段之间按需要重新分配数据。借助这种结构,数据流可以经过任意复杂的处理阶段。
实时分析与连续计算
Apache Storm 的应用场景包括 realtime analytics 和 continuous computation。它适合对持续产生的数据进行实时处理,而不是等待批处理周期结束后再计算。官网还将在线机器学习、分布式 RPC 和 ETL 列为应用方向,说明其计算能力不仅限于单一的数据分析场景。
容错与可靠处理
官网明确表示 Apache Storm 是 fault-tolerant and reliable,并指出它能够保证数据得到处理。系统的设计目标包括可扩展、容错和可靠运行,因此适合需要持续处理数据流并关注处理可靠性的实时计算任务。
高吞吐与可扩展运行
官网称 Apache Storm 很快,并引用基准测试结果:每个节点每秒处理超过一百万个 tuple。主页同时说明它是 scalable 的,且易于设置和运行。这个基准数字描述的是单节点每秒处理能力,不能直接等同于所有部署环境下的实际性能。
多语言与现有技术集成
Apache Storm 可以使用任意编程语言,这使数据流处理逻辑不被限定在某一种语言中。它还能够与用户已经使用的队列技术和数据库技术集成,便于将实时计算拓扑连接到现有的数据输入与存储组件。
使用方式
官网提供 Apache Storm 3.0.0 的下载入口和 Get Started 教程。使用者可以通过教程了解 topology、spouts、bolts 以及数据流处理方式。正文没有说明是否需要注册、是否提供独立客户端、浏览器插件或开放 API,也没有提到需要自备模型 Key;已明确的是系统支持任意编程语言,并可接入已有的队列和数据库技术。
适用人群与场景
进行实时分析的开发者或数据团队可以使用 Apache Storm 处理持续产生的数据流。在线机器学习场景可以将其用于实时数据处理,连续计算场景可以让计算持续作用于输入流。需要分布式 RPC 或 ETL 的团队也可将这些能力纳入实时拓扑,并通过队列和数据库集成现有技术栈。
定价
官网明确将 Apache Storm 标注为 free and open source。正文没有提供付费版本、套餐、使用额度或商业支持价格等信息,因此可确认的是该软件本身免费且开源,不能据此推导其他服务的收费方式。