大数据组件之Storm详解

news2025/1/11 21:58:30

           Storm 是一个免费并开源的分布式实时计算系统,具有高容错性和可扩展性。它能够处理无边界的数据流,并提供了实时计算的功能。与传统的批处理系统相比,Apache Storm 更适合处理实时数据。

让我们深入了解一下 Storm

1.Storm 简介

  • Storm 是一个分布式实时大数据处理系统,设计用于在容错和水平可扩展方法中处理大量数据。
  • 它是一个流数据框架,具有最高的摄取率。
  • 虽然 Storm 是无状态的,但它通过 Apache ZooKeeper 管理分布式环境和集群状态。

2.Storm 的特点

  • 编程简单:开发人员只需关注应用逻辑,类似于 HadoopStorm 提供的编程原语也很简单。
  • 高性能,低延迟:适用于广告搜索引擎等需要实时响应的场景。
  • 分布式:轻松应对数据量大、单机无法处理的场景。
  • 可扩展:随着业务发展,系统可水平扩展。
  • 容错:单个节点故障不影响应用。
  • 消息不丢失:保证消息处理

3.Storm 与 Hadoop 的比较

  • Storm 用于实时计算,Hadoop 用于离线计算。
  • Storm 处理的数据保存在内存中,源源不断;Hadoop 处理的数据保存在文件系统中,一批一批。
  • Storm 的数据通过网络传输进来;Hadoop 的数据保存在磁盘中。
  • StormHadoop 的编程模型相似。

4.Storm 集群架构

  • Nimbus:Storm 集群的 Master 节点,负责分发用户代码,指派给具体的 Supervisor 节点上的 Worker 节点运行 Topology 对应的组件(Spout/Bolt)的 Task。
  • Supervisor:Storm 集群的从节点,负责管理运行在 Supervisor 节点上的每一个 Worker 进程的启动和终止。
  • ZooKeeper:协调 Nimbus 和 Supervisor,确保 Topology 在故障情况下重新分配到可用的 Supervisor 上运行。

5.Storm 编程模型

  • Spout:获取源数据流的组件,通常从外部数据源中读取数据并转换为 Topology 内部的源数据。
  • Bolt:接受数据并执行处理的组件,用户可以在其中执行自己想要的操作。
  • Tuple:一次消息传递的基本单元,理解为一组消息就是一个 Tuple。
  • Stream:Tuple 的集合,表示数据的流向。

6.Topology 运行

  • 在 Storm 中,一个实时应用的计算任务被打包作为 Topology 发布,类似于 Hadoop 的 MapReduce 任务。
  • 不同之处在于,Storm 中的 Topology 任务一旦提交后永远不会结束,除非显式停止任务。
  • Topology 由不同的 Spouts 和 Bolts 通过数据流连接起来,形成图形结构。
  • Storm 使用 Worker、Executor 和 Task 来完成 Topology 的执行工作,保证实时数据处理。

7.应用场景

       Storm 是一个强大的分布式实时计算系统,适用于多种场景。以下是一些 Storm 的应用场景:

  1. 实时分析Storm 可以处理无限的数据流,用于实时分析,例如实时监控、实时报警、实时指标计算等。

  2. 在线机器学习Storm 适用于在线机器学习任务,如实时模型训练、特征提取和预测。

  3. 持续计算Storm 可以处理连续的数据流,例如流式处理日志、事件流、传感器数据等。

  4. 分布式 RPCStorm 可以用于构建分布式远程过程调用(RPC)系统,实现分布式服务之间的通信。

  5. ETL(Extract, Transform, Load)Storm 可以用于数据抽取、转换和加载,将数据从不同源转移到目标系统。

                总之,Storm 是一款强大的分布式实时计算系统,为企业提供稳定可靠的实时计算服务,帮助处理和分析大规模数据,促进业务增长和发展。Storm 的灵活性、高性能和可靠性使其成为处理实时数据的理想选择,适用于各种业务需求。

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

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

相关文章

【自研网关系列】过滤器链 -- 灰度发布过滤器

🌈Yu-Gateway::基于 Netty 构建的自研 API 网关,采用 Java 原生实现,整合 Nacos 作为注册配置中心。其设计目标是为微服务架构提供高性能、可扩展的统一入口和基础设施,承载请求路由、安全控制、流量治理等…

图像预处理工具_CogImageFileTool

CogImageFileTool工具可以用来将单张图片或idb格式的图片数据库读入内存。也可使用CoglmageFileTool工具将图片插入到.idb数据库里。 添加工具 参数介绍 文件名 写入模式 读取模式 删除

k8s集群Grafana精选dashboard页面

文章目录 参考文档 Grafana自选模板推荐模板:13332、13824、14518Grafana默认配置我们选择 Node Exporter/Nodes 的 Dashboard 进去:点击 Kubernetes/Networking/Cluster 进去使用模板查看结果 Grafana接入Prometheus数据Grafana添加监控模板导入 1860_r…

Hotcoin Research|玩赚WEB3:Seraph零成本赚取技巧

在《Seraph》这款游戏里,要提升自己的游戏技能和体验,了解如何免费赚取游戏货币灵魂晶石并挑战游戏主线是非常重要的。你可以通过卖东西、参加虚空异界地图和混沌秘境来在游戏里赚更多的钱,并更享受游戏的乐趣。最酷的是,得到的灵…

远程桌面连接服务器怎样连接不上的六个常见原因

远程桌面连接服务器无法连接的问题可能由多种原因引起。以下是一些常见的问题及其解决方案: 1. 网络连接问题:远程桌面连接的基础是稳定的网络连接。如果网络连接不稳定或中断,那么你将无法连接到远程桌面。检查你的网络连接,确保…

ubuntu 利用阿里网盘API实现文件的上传和下载

文章目录 背景脚本初始化 阿里云盘API工具 aligo安装aligoaligo教程实战parse.py 演示上传文件上传文件夹下载文件下载文件夹 背景 最近在用ubuntu系统做实验,而ubuntu 系统的文件上传和下载操作很麻烦; 于是便打算使用阿里网盘的API 进行文件下载与上传…

局域网屏幕桌面监控哪个软件比较好?哪款好用?

在企业、教育机构或其他组织中,出于提高工作效率、保障数据安全、规范员工行为等目的,对局域网内电脑屏幕进行实时监控的需求日益凸显。 面对市场上众多屏幕监控软件,选择一款功能全面、稳定可靠且符合法规要求的产品至关重要。 在局域网屏幕…

git revert的使用

由于某种原因我们需要撤销掉之前某一次的修改,但是这个修改已经提交,并且后面又经历了好几轮的提交。可能如下这种情况: 那么此时使用git revert再合适不过啦。git revert ${commit_id}就可以将指定commit id的修改撤销,然后提交…

STM32入门_江协科技_3~4_OB记录的自学笔记_软件安装新建工程

3. 软件安装 3.1. 安装Keil5 MDK 作者的资料下载的连接如下:https://jiangxiekeji.com/download.html#32 3.2. 安装器件支持包 因为新的芯片层出不穷,所以需要安装Keil5提供的器件升级版对软件进行升级,从而支持新的芯片;如果不…

Vue入门到关门之组件

一、组件 1、什么是组件 在Vue.js中,组件是构建用户界面的可重用和独立的模块。每个Vue组件都封装了自己的模板、逻辑和样式,使得代码可以更加模块化、可维护性更高。通过组件化,你可以将界面拆分成独立的、可复用的部分,每个部…

linux dma的使用

设备树配置 驱动代码 static void bcm2835_dma_init(struct spi_master *master, struct device *dev) { struct dma_slave_config slave_config; const __be32 *addr; dma_addr_t dma_reg_base; int ret; /* base address in dma-space */ addr of_get_address(master->de…

visionPro链接相机

搜索Cognex GigE Vision Configura… 修改子网掩码为255.255.255.0 配置驱动程序 更新驱动(如果能够选择9014Bytes,跳过此步骤) 更新更改 相机ip配置 打开visionPro 选择照相机 查看实时画面 运行保存图像

【C++】哈希表的底层逻辑

目录 一、哈希概念 1、哈希冲突 2、哈希冲突的解决 a、闭散列 🟢插入 🟢查找 🟢删除 🟢其他类型的数据 🟢实现 b、 开散列 🟢插入 🟢查找 🟢删除 🟢析构 &a…

RTMP 直播推流 Demo(一)—— 项目配置与视频预览

音视频编解码系列目录: Android 音视频基础知识 Android 音视频播放器 Demo(一)—— 视频解码与渲染 Android 音视频播放器 Demo(二)—— 音频解码与音视频同步 RTMP 直播推流 Demo(一)—— 项目…

ASR语音转录Prompt优化

ASR语音转录Prompt优化 一、前言 在ASR转录的时候,我们能很明显的感受到有时候语音识别不是很准确,这过程中常见的文本错误主要可以归纳为以下几类: 同音错误(Homophone Errors) 同音错误发生在不同词语发音相似或相…

javafx如何一键打包成exe

javafx如何打包成exe JavaFX-Template-Native 集成jfoenix、commons-math、commons-lang3、netty,方便一些和底层做通信使用,不需要可以自行pom中去掉依赖当前使用的jdk17,理论上jdk14都支持采用模块化,支持一键打包生成很小的ex…

远程桌面的端口配置与优化

在现代企业环境中,远程桌面连接已成为日常工作中不可或缺的一部分。然而,随着网络攻击的增加,确保远程桌面连接的安全性变得尤为重要。其中一个关键的安全因素是端口配置。 一、远程桌面默认端口 远程桌面协议(RDP)默…

深度学习之视觉特征提取器——LeNet

LeNet 引入 LeNet是是由深度学习巨头Yann LeCun在1998年提出,可以算作多层卷积网络在图像识别领域的首次成功应用。我们现在通常说的LeNet是指LeNet-5,最早的LeNet-1在1988年即开始研究,前后持续十年之久。但是,受限于当时计算机…

关于远程桌面与3389端口的深度解析

当我们谈论远程桌面和3389端口时,我们实际上是在探讨Windows操作系统的一个核心功能,该功能允许用户通过网络从任何地点远程控制和管理计算机。而3389端口,正是这一功能所依赖的通信端口。 一、远程桌面的工作原理 远程桌面协议(R…

C++---重载

1、运算符重载 #include <iostream> using namespace std; class complex { int rel; int vir; public: complex(){} complex(int rel,int vir):rel(rel),vir(vir){} void show() { cout << rel << "" << vir << "i" <&l…