Storm

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 应用场景1.信息流处理Storm可用来实时处理新数据和更新数据库,兼具容错性和可扩展性。即 Storm可以用来处理源源不断流进来的消息,处理之后将结果写入到某个存储中去。

应用场景

1.信息流处理
Storm可用来实时处理新数据和更新数据库,兼具容错性和可扩展性。即 Storm可以用来处理源源不断流进来的消息,处理之后将结果写入到某个存储中去。
2.连续计算
Storm可进行连续查询并把结果即时反馈给客户端。比如把 Twitter 上的热门话题发送到浏览器中。
3.分布式远程调用
Storm 可用来并行处理密集查询。Storm 的拓扑结构是一个等待调用信息的分布函数,当它收到一条调用信息后,会对查询进行计算,并返回查询结果。举个例子 Distributed RPC 可以做并行搜索或者处理大集合的数据。

操作步骤

1. Storm概述

Storm 是一个实时的、分布式的、可靠的流式数据处理系统。它的工作就是委派各种组件分别独立的处理一些简单任务。在 Storm 集群中处理输入流的是 Spout 组件,而 Spout 又把读取的数据传递给叫Bolt的组件。Bolt组件会对收到的数据元组进行处理,也有可能传递给下一个Bolt。我们可以把 Storm
集群想象成一个由Bolt 组件组成的链条集合,数据在这些链条上传输,而Bolt作为链条上的节点来对数据进行处理。

Storm 保证每个消息都会得到处理,而且处理速度非常快,在一个小集群中,每秒可以处理数以百万计的消息。Storm 的处理速度非常惊人:经测试,每个节点每秒可以处理 100 万个数据元组。其主要应用领域有实时分析、在线机器学习、持续计算、分布式 RPC(远过程调用协议,一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。)、ETL(数据抽取、转换和加载)等。

Storm 和 Hadoop 集群表面看上去很类似,但是 Hadoop 上面运行的是 MapReduce Jobs,而在Storm上运行的是拓扑 Topology,这两者之间是非常不一样的,关键区别是:MapReduce 最终会结束,而一个 Topology永远会运行(除非你手动 kill 掉),换句话说,Storm 是面向实时数据分析,而 Hadoop 面向的是离线数据分析,Storm 在 HDP 中的位置如下图所示。

这里写图片描述

2. Storm集群架构

Storm的集群由一个主节点和多个工作节点组成。主节点运行一个名为“Nimbus”的守护进程,每个工作节点都运行一个名为“Supervisor”的守护进程,两者的协调工作由ZooKeeper 来完成,ZooKeeper 用于管理集群中的不同组件,Storm集群架构如下图所示。

这里写图片描述

2.1 主节点 Nimbus

主节点通常运行一个后台程序——Nimbus,用于响应分布在集群中的节点,分配任务和监测故障,在某个节点的 Supervisor出现故障宕机之后,如果在该节点上运行的 Worker进程异常终止,Nimbus会将异常终止的 Worker 进程分配到其他 Supervisor 节点上继续运行,这类似于 Hadoop 中的JobTracker。

2.2 工作节点 Supervisor

每一个工作节点上面运行一个叫做 Supervisor进程。Supervisor负责监听从 Nimbus 分配给它执行的任务,还能保证正常运行的 Worker异常终止之后能够重启该 Worker。Nimbus 和 Supervisor之间的协调则通过 ZooKeeper 系统。

2.3 协调服务组件 Zookeeper

ZooKeeper 是完成 Nimbus 和 Supervisor 之间协调的服务。而应用程序实现实时的逻辑则被封装进Storm中的“topology”。Topology 则是一组由 Spout(数据源)和 Bolts(数据处理)通过 Stream Groupings 进行连接的图。

2.4 工作进程 Worker

Worker是一个 Java 进程,执行拓扑的一部分任务。一个 Worker进程执行一个 Topology的子集,它会启动一个或多个 Executor 线程来执行一个 Topology 的组件(Spout 或 Bolt),如下图。

这里写图片描述

3. Storm的使用

这里写图片描述

这里写图片描述

这里写图片描述

一但storm任务开启,那么就一直在运行,除非手动终止。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
3月前
|
存储 Java Linux
Storm详细配置
Storm详细配置
34 0
|
9月前
|
存储 消息中间件 分布式计算
104 Storm介绍
104 Storm介绍
25 0
|
消息中间件 Kafka 流计算
Flume+Kafka+Storm实战:一、Kakfa与Storm整合(下)
Flume+Kafka+Storm实战:一、Kakfa与Storm整合(下)
171 0
Flume+Kafka+Storm实战:一、Kakfa与Storm整合(下)
|
消息中间件 Java Kafka
Flume+Kafka+Storm实战:一、Kakfa与Storm整合(上)
Flume+Kafka+Storm实战:一、Kakfa与Storm整合(上)
137 0
Flume+Kafka+Storm实战:一、Kakfa与Storm整合(上)
|
存储 监控 安全
storm笔记:storm集群
Strom集群结构是有一个主节点(nimbus)和多个工作节点(supervisor)组成的主从结构,主节点通过配置静态指定(还有一种主从结构是在运行时动态选举,比如zookeeper)。通常这种主从结构存在出现单点故障的风险,Storm通过特殊处理规避这种风险,后面将解释Storm的半容错结构。
383 0
storm笔记:storm集群
|
开发框架 分布式计算 Java
storm 介绍|学习笔记
快速学习 storm 介绍
115 0
storm 介绍|学习笔记
|
消息中间件 JSON 自然语言处理
storm笔记:Storm+Kafka简单应用
通过本文记录一下这种情况,后文中根据上述场景提供几个简单的例子。因为是初学storm、kafka,基础理论查看storm笔记:storm基本概念,,或查看Storm 简介。
147 0
|
Java 流计算
Storm BaseBasicBolt和BaseRichBolt
Storm BaseBasicBolt和BaseRichBolt
821 0
|
流计算 jstorm
Jstorm vs Storm
Jstorm 是由Storm演化而来,在架构和实现上都有很大的相似度,并且沿用了Storm的编程接口,Storm的程序在很多版本上,可以无缝迁移到Jstorm。整体上说,Jstorm更稳定,灵活性更高,性能更高。
1279 0