Storm的基本概念

Storm是一个开源的分布式实时计算系统,最初由Nathan Marz于2011年创建。它可以在大规模集群上运行,处理实时数据流,支持高吞吐量和低延迟的数据处理。Storm提供了一个可扩展的、容错的、高可用的平台,可以处理海量数据源,包括实时日志、传感器数据、交易数据等等。

Storm采用了一种分布式架构,将数据分成多个流,每个流由一个或多个任务处理。每个任务都有自己的线程,可以并行处理流中的数据。Storm还提供了可靠性保证,如果一个任务失败,它会自动重启并重新处理数据。

Storm的核心概念包括Spout(数据源)、Bolt(数据处理)和Topology(拓扑结构)。Spout从数据源获取数据,并将其发送到Bolt中进行处理。Bolt可以执行各种数据处理操作,例如过滤、聚合、计数等。Topology是一个由Spout和Bolt组成的有向图,描述了数据流的流向和处理逻辑。

其中

  1. Topology(拓扑结构): Topology是Storm中描述实时数据流处理逻辑的概念,它由Spouts和Bolts组成的有向图。Topology定义了数据流的流向和处理逻辑,描述了数据如何从数据源经过各种处理操作最终输出到目标。

  2. Streams(数据流): Streams是指在Topology中流动的数据,它代表了数据的实时流动。数据可以通过不同的Stream进行分发、过滤、聚合等处理操作,最终被传递到目标Bolts进行处理。

  3. Spouts(数据源): Spouts是Topology中的组件,用于从外部数据源获取数据并将其发送到Topology中进行处理。Spouts可以是从消息队列、数据库、文件系统等数据源中获取数据,并将数据发送到Topology中。

  4. Bolts(数据处理): Bolts是Topology中的组件,用于对数据进行各种处理操作。Bolts可以执行过滤、聚合、计数、连接等数据处理操作,对数据进行实时处理和转换。Bolts接收来自Spouts或其他Bolts的数据流,并将处理后的数据发送到下游的Bolts或目标系统中。

Storm还提供了一些扩展功能,例如分组、流分区、可靠性保证、事务性处理等。它还可以与其他大数据平台集成,例如Hadoop、HBase、Kafka等。

总的来说,Storm是一个快速、可靠、可扩展的实时计算系统,可以帮助企业处理大规模的实时数据流,支持多种数据处理操作和扩展功能。

并行度

Storm的并行度是指在处理数据流时同时执行任务的数量。在Storm中,数据流可以被分成多个流,每个流由一个或多个任务处理。这些任务可以并行执行,以加快数据处理速度和提高系统的吞吐量。

并行度可以在Spouts和Bolts上进行配置。在Spouts中,可以配置并行度来决定从数据源获取数据的速度和并行处理的数量。在Bolts中,可以配置并行度来决定数据处理任务的数量,从而实现对数据流的并行处理。

通过配置并行度,可以根据系统的需求来调整处理数据的速度和规模。较高的并行度可以提高系统的处理速度和吞吐量,但也需要更多的计算资源。而较低的并行度则可以减少资源消耗,但可能会影响系统的处理性能。

1 个 Worker 进程执行的是 1 个 Topology 的子集,不会出现 1 个 Worker 为多个 Topology 服务的情况,因此 1 个运行中的 Topology 就是由集群中多台物理机上的多个 Worker 进程组成的。1 个 Worker 进程会启动 1 个或多个 Executor 线程来执行 1 个 Topology 的 Component(组件,即 Spout 或 Bolt)。 Executor 是 1 个被 Worker 进程启动的单独线程。每个 Executor 会运行 1 个 Component 中的一个或者多个 Task。 Task 是组成 Component 的代码单元。Topology 启动后,1 个 Component 的 Task 数目是固定不变的,但该 Component 使用的 Executor 线程数可以动态调整(例如:1 个 Executor 线程可以执行该 Component 的 1 个或多个 Task 实例)。这意味着,对于 1 个 Component 来说,#threads<=#tasks(线程数小于等于 Task 数目)这样的情况是存在的。默认情况下 Task 的数目等于 Executor 线程数,即 1 个 Executor 线程只运行 1 个 Task。

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值