【Storm实战】1.2 图解Storm的架构及其组件

文章目录

  • 0. 前言
  • 1. 图解架构及其组件
  • 2. Storm的主要架构组件

0. 前言

上一章节,我们为了好理解,将storm中的抽象概念 通过画了一个水力发电系统的工作模式,相信大家一定可以直观地理解Storm中的流 (Stream) 拓扑 (Topology)SpoutBolt任务(Task)工作者 (Worker)是如何协同工作处理数据的。

我们将流 (Stream) 比作河流,拓扑 (Topology)想象成是一个水力发电系统,Spout可以视为水力发电系统中的水轮机,它不断从河流(外部数据源)中截取水流。

Bolt就像是沿着水轮机的齿轮和发动机,它们接收从水轮机传来的动力(元组tuple),执行各种操作(处理数据),比如研磨谷物或发电。在Storm中,Bolts可以执行多种数据转换操作,如过滤、聚合、写入数据库等。

任务(Task)可以想象成是工人在水轮机和发电机之间的每个环节上工作。如果这个系统需要处理更多的水流(数据),我们就需要更多的工人(任务)。

在Storm中,增加任务的数量可以提高系统处理数据的能力。工作者 (Worker)看作是整个水力发电系统的工作站或工厂。在这些工作站里,每个工人(任务)负责操作一套齿轮与发动机(执行Spout和Bolt的逻辑)。工厂越多,系统的处理能力就越强。在Storm中,我们可以增加工作者(进程)的数量来扩展拓扑的处理能力。

1. 图解架构及其组件

本章节,我们着重来看下Storm的架构及其组件。还是老样子,我们以类比图解的方式讲解,我画了一个图,
在这里插入图片描述

我们想象一下一个水电站系统,这个系统的任务是利用水流来发电。在这个类比中,

Storm的架构及其组件可以借助上面的图这样理解

  1. Nimbus(控制中心):这就像是水电站的控制室,负责监控整个系统的运行,确保所有的水轮机(Spout)和发电机(Bolt)正常工作。如果某个设备出了问题,控制中心会及时派出人员去修理或替换。

  2. Supervisor(转换站):这就像是电站的变压器,接收来自控制中心的指令并确保电力(任务)送到正确的地点。

  3. Worker进程(发电机组):每个Worker就是一个包含多台发电机的发电机组,实际上转动产生电力。在Storm中,Worker进程运行在JVM中,执行实际的处理任务。

  4. Task(单独的发电机):每个发电机都是发电机组的一部分,负责生成电力。在Storm中,每个任务都是处理流数据的最小工作单元。

  5. Topology(发电网络):整个发电站的电网,确保电力能够从水流经过各种设备最终供到用户。Storm中的拓扑定义了数据流向和处理的逻辑结构。

  6. Stream(水流):水电站中的水流就像Storm中流动的数据,水流的动力是发电的来源。

  7. Spout(水轮机):水轮机是起始点,它抓住水流的动力并开始转化为电能。在Storm中,Spout从外部数据源捕获数据,生成元组流,是数据流开始的地方。

  8. Bolt(发电机):发电机负责接收水轮机的动力并转换成电能。在Storm中,Bolt会处理Spout发送的元组,执行计算操作,可能还会将结果发送到下一个Bolt或存储起来。

通过这个类比,你可以更容易地理解Storm的组件是如何协同工作的,以及它们在数据处理流程中各自扮演的角色。

2. Storm的主要架构组件

在这里插入图片描述

  1. Nimbus:这是Storm集群的主节点,负责分发代码,分配任务给Supervisor,监视失败的任务并重新分配。

  2. Supervisor:运行在各工作节点上,负责接收从Nimbus分配的任务,然后把任务分配给这个节点的Worker进程。

  3. Worker进程:运行在Supervisor节点下,负责执行具体的任务。每个任务都会运行在一个单独的JVM进程中。

  4. Task:实际运行的工作单元,一个Worker进程可以运行一个或者多个Task。

  5. Topology:Storm中处理逻辑的封装。

  6. Stream:数据流,Storm中的主要数据结构,由多个tuple组成。

  7. Spout:数据源,负责从数据源获取数据,转换为tuple发送给Bolt。

  8. Bolt:数据处理的主要组件,可以接收数据、处理数据以及发送数据。

Storm的架构设计得非常合理,可以适应各种规模的实时处理任务,从而在大数据处理领域得到了广泛应用。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/596117.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

How to understand DataArts Insight in Huawei Cloud

How to understand DataArts Insight in Huawei Cloud 概述什么是DataArts Insight为什么选择华为云DataArts Insight多业务场景全覆盖,实现企业智能分析产品架构产品功能数据接入数据加工仪表板数据大屏交互式分析嵌入式分析智能分析助手智能洞察BI内存引擎企业级数…

Vue中的计算属性与监听器

聚沙成塔每天进步一点点 ⭐ 专栏简介 Vue学习之旅的奇妙世界 欢迎大家来到 Vue 技能树参考资料专栏!创建这个专栏的初衷是为了帮助大家更好地应对 Vue.js 技能树的学习。每篇文章都致力于提供清晰、深入的参考资料,让你能够更轻松、更自信地理解和掌握 Vue.js 的核心概念和技…

大数据开发与低代码:加速数据处理与解决方案开发

随着数据量的爆炸式增长,大数据开发变得愈发重要。然而,传统的大数据开发方法往往需要复杂的编码和开发过程,消耗时间和资源。而低代码开发平台的出现为大数据开发带来了全新的解决方案。本文将介绍大数据开发和低代码的概念,并探…

python的课后练习总结4(while循环)

for循环用于针对序列中的每个元素的一个代码块。 while循环是不断的运行&#xff0c;直到指定的条件不满足为止。 while 条件&#xff1a; 条件成立重复执行的代码1 条件成立重复执行的代码2 …….. i 1while i < 5:print(i)i i 11、使用wh…

WMS仓储管理系统与WCS系统:功能差异与特点对比

在物流行业的现代化管理中&#xff0c;WMS仓储管理系统和WCS仓库控制系统扮演着举足轻重的角色。虽然它们都是仓库管理软件系统&#xff0c;但是它们在功能和应用场景上存在显著的差异。本文将详细阐述这两者的功能和区别。 一、WMS仓储管理系统 WMS是一种综合性的软件系统&…

制药企业符合CSV验证需要注意什么?

在制药行业中&#xff0c;计算机化系统验证&#xff08;CSV&#xff09;是确保生产过程的合规性和数据完整性的关键要素。通过CSV验证&#xff0c;制药企业可以保证其计算机化系统的可靠性和合规性&#xff0c;从而确保产品质量和患者安全。然而&#xff0c;符合CSV验证并不是一…

通过回答自然语言问题进行事件抽取(EMNLP2020)

1、写作动机&#xff1a; 以往的事件抽取方法都基于神经网络模型抽取的密集特征和预训练语言模型的上下文表示。但是&#xff0c;它们&#xff08;1&#xff09;严重依赖实体识别进行事件论元抽取&#xff0c;特别是通常需要采用多步骤方法来进行事件论元抽取。&#xff08;2&…

Android linephone-android sdk设置语音编码问题

1.遇到的问题 今天遇到linphone-android sdk需要解决语音编码问题&#xff0c;需要指定编码。查了下配置&#xff0c;里面没有发现类似的配置。 ## Start of factory rc # This file shall not contain path referencing package name, in order to be portable when app is r…

如何搭建中后台管理系统

vue3 TS vite 搭建中后台管理系统 前言1、搭建步骤及方法2、集成多种插件功能&#xff0c;实现中后台按需使用3、新手学TS如何快速进入状态、定义TS类型4、layout搭建四款常见风格6、大屏搭建效果5、vue3Ts运营管理系统总结&#xff1a; 前言 要成功&#xff0c;先发疯&…

【QT】中英文切换

很高兴在雪易的CSDN遇见你 前言 本文分享QT中如何进行中英文切换&#xff0c;希望对各位小伙伴有所帮助&#xff01; 感谢各位小伙伴的点赞关注&#xff0c;小易会继续努力分享&#xff0c;一起进步&#xff01; 你的点赞就是我的动力(&#xff3e;&#xff35;&#xff3e…

阿里云ECS服务器无法访问端口(防火墙在关闭状态也启作用)

问题&#xff1a;一直用得好好的端口&#xff0c;突然在某一时间不可以访问这个端口了 &#xff0c;在服务器录入外网地址访问如下图&#xff1a; 先按正常流程检测&#xff1a; 1 先云服务商的管理网站查看防火墙端口是否开放 看了正常开放了端口&#xff0c;如下图&#xff…

(JAVA)-动态代理

代理在我们生活中很常见&#xff1a; &#xff1a;当我们想看演唱会时&#xff0c;让黄牛帮我们排队买。 &#xff1a;当明星要唱歌时&#xff0c;委托别人帮忙准备。 &#xff1a;老婆想吃饭&#xff0c;让老公帮他做饭。 代理模式就是把我们不愿意做的事情委托给别的对象…

T527 camera: AHD摄像头转MIPI

一、AHD 常见的摄像头接口一般有MIPI、USB、DVP等等&#xff0c;但是MIPI摄像头受限于高速信号的传输距离问题&#xff0c;导致走线不能太长&#xff0c;这样在安防监控领域、车载等领域&#xff0c;使用就很受限&#xff0c;因此会引入AHD&#xff0c;目的就是提高了传…

【unity小技巧】Unity音乐和音效管理器

最终效果 前言 在游戏开发中&#xff0c;音乐和音效的管理是一个重要的环节。好的音乐和合适的音效可以为游戏增添氛围并提升玩家的体验。为了更好地管理音乐和音效&#xff0c;我们可以使用一个专门的音乐和音效管理器。 在本文中&#xff0c;我将向大家介绍如何在Unity中创…

倍思科技红海突围要义:紧随新趋势,“实用而美”理念从一而终

移动数码周边市场始终不缺热度。 销售端是业绩的节节高升&#xff0c;如在2023年京东双十一&#xff0c;移动数码周边产品销售成果丰硕&#xff0c;根据京东战报&#xff0c;大功率充电器成交额同比提升 200%&#xff0c;65W以上移动电源成交额同比提升 150%&#xff0c;自带线…

Java IO流介绍以及缓冲为何能提升性能

概念&#xff1a; 流是一种抽象概念&#xff0c;它代表了数据的无结构化传递。按照流的方式进行输入输出&#xff0c;数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作&#xff0c;而向流中添加数据的操作称为插入操作。 Java IO 也称为IO流&#xff0c;…

海外 proxy代理Croxyproxy使用教程

什麼是Croxy代理&#xff1f; CroxyProxy是一項線上代理服務。它允許用戶訪問被阻止的網站和應用程式&#xff0c;提供一種安全的方式來訪問互聯網資源&#xff0c;同時維護用戶隱私。與許多其他網路代理不同&#xff0c;它支持幾乎所有類型的網站&#xff0c;包括視頻、搜索引…

北京1月1日起,禁止上路!“老头乐”,乐不起来了?

北京“老头乐”退场 2021年7月&#xff0c;北京市公安局、北京市交通委员会等五部门联合发布《关于加强违规电动三四轮车管理的通告》&#xff0c;明确提出&#xff0c;对通告发布前购买的违规电动三、四轮车设置过渡期&#xff0c;过渡期截至2023年12月31日。过渡期结束后&am…

芯课堂 | LVGL基础知识(二)

引言 在 LVGL 中&#xff0c;用户界面的基本构建块是对象&#xff0c;也称为小部件(widget)。默认情况下&#xff0c;LVGL在背景上绘制旧对象&#xff0c;在前景上绘制新对象。 对象层级(Layers) 创建对象层级顺序 默认情况下&#xff0c;LVGL在背景上绘制旧对象&#xff0c…

数字人对话系统 Linly-Talker(已加入Qwen和GeminiPro加强对话+上传任意图片的数字人)

&#x1f525;&#x1f525;&#x1f525;数字人对话系统 Linly-Talker&#x1f525;&#x1f525;&#x1f525;&#xff08;已加入Qwen和GeminiPro加强对话上传任意图片的数字人&#xff09; English 简体中文 欢迎大家star我的仓库 https://github.com/Kedreamix/Linly-Ta…