📜  Apache Storm-简介(1)

📅  最后修改于: 2023-12-03 15:29:26.289000             🧑  作者: Mango

Apache Storm-简介

Apache Storm是一个开源的分布式实时计算系统。它可以处理实时数据流并将其转换为有用的信息,同时还可以将数据分发到不同的节点上,支持大规模的分布式计算。

特点
  • 快速: Storm以每秒数百万条记录的速度处理数据,具有极低的延迟。
  • 可扩展: Storm易于扩展,可以横向扩展到数千台机器。
  • 容错: Storm提供容错,以确保即使某个节点失败,它也可以继续处理数据,并确保不会出现数据丢失的情况。
  • 灵活: Storm支持各种编程语言和数据源,并提供了可自定义的拓扑结构。
架构

Storm采用分布式通信框架ZooKeeper来协调协作,并使用Storm Nimbus和Storm Supervisor来分配任务和管理工作节点。

  • Nimbus: 负责接受和分配工作任务,并监控工作节点的状态。
  • Supervisor: 运行在工作节点上,负责启动和停止工作进程,同时将状态报告给Nimbus。
  • Worker: 在Supervisor上运行的工作进程,用于处理数据流。

Storm架构图

拓扑结构

Storm将实时处理任务作为拓扑(Topology)来管理,每个拓扑都由一个或多个流处理器(Spout和Bolt)组成。

  • Spout: 用于读取数据流,例如Kafka和JMS等数据源。
  • Bolt: 用于处理数据流,例如聚合数据、过滤数据等。

拓扑结构可自定义,实现灵活和多样的现实应用场景。例如,可使用Kafka Spout将数据从Kafka读取,使用过滤器Bolt过滤数据,再使用聚合器Bolt对数据进行聚合操作。

总结

Apache Storm是一个开源的分布式实时计算系统,具有快速、可扩展、容错和灵活的特点。它以拓扑结构的方式管理并处理数据流,支持各种编程语言和数据源。Storm的架构由ZooKeeper、Nimbus、Supervisor、Worker等组件组成。在现实应用中,Storm可应用于各种场景,例如日志分析、实时指标计算和数据挖掘等。