大数据组件之Storm详解

           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.hqwc.cn/news/660164.html

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

相关文章

idm下载速度慢解决办法 idm批量下载怎么用 idm优化下载速度 Internet Download Manager解决下载速度慢的方法教程

IDM (Internet Download Manager)是一款兼容性大,支持多种语言的下载管理软件,它可以自动检测并下载网页上的内容,这正是这一优点,使得它受到了广大用户的喜爱。但是在下载的过程中,我们会遇到idm下载速度慢怎么回事&a…

Spring - 7 ( 13000 字 Spring 入门级教程 )

一:Spring Boot 日志 1.1 日志概述 日志对我们来说并不陌生,我们可以通过打印日志来发现和定位问题, 或者根据日志来分析程序的运行过程,但随着项目的复杂度提升, 我们对日志的打印也有了更高的需求, 而不仅仅是定位排查问题 比如有时需要…

ASP.NET数据存储与交换系统设计

摘 要 该系统以Microsoft Visual Studio 2003作为开发工具,选用SQL Server 2000数据库来实现数据存储,并设计开发了一种基于B/S模式的数据存储与交换系统。该系统完成了用户注册管理、后台管理和用户空间管理功能;为每个用户提供了个人的存…

C++命令行系统(一)

1 概述 在嵌入式开发中,经常会利用命令行交互系统测试功能,本文描述使用C语言开发的一个命令行交互系统,支持命令注册(C或C格式),命令分组,执行命令,显示命令提示。 2 设计 2.1 CommandManager 接口列表:…

前端打包过大如何解决?

前端开发完毕部署到线上是,执行npm run build。当打包过大时,部署到服务端后加载缓慢,如何优化? 我们可以通过执行npm run analyze。可以看到各个包文件大小的区别。 当打包过大时,通过压缩gzip的方式,可以…

LVGL自定义滑动

触摸和编码器都可以操作 typedef struct {lv_obj_t* obj;int16_t x;int16_t y;int16_t width;int16_t height; }pos_and_size_t;typedef struct {lv_obj_t* obj;lv_coord_t height;lv_coord_t width;lv_coord_t width_pad;lv_coord_t height_pad;lv_coord_t child_widget;lv_co…

大模型应用开发极简入门

简单的归纳一下书的前序部分 目录 LLM(Large Language Model)的应用技术栈通常包括以下几个方面: 深度学习框架: 数据预处理工具: 训练资源: 模型优化和调参工具: 部署和应用集成&#xf…

06_Flutter自定义锚点分类列表

06_Flutter自定义锚点分类列表 这样的效果,大家在一些商超应用里,应该也看到过。接下来咱们就用Flutter一步一步的来实现。 一.自定义属性抽取 categoryWidth: 左侧边栏的宽度,右侧区域的宽度填充剩余空间即可。itemCount: 总共有多少个分类…

Java——StringBuilder和StringBuffer

目录 一.StringBuilder的介绍 二.面试题 1.String、StringBuffer、StringBuilder的区别 2.以下总共创建了多少个String对象【前提不考虑常量池之前是否存在】 一.StringBuilder的介绍 由于String的不可更改特性,为了方便字符串的修改,Java中又提供St…

企业智能名片小程序:AI智能跟进功能助力精准营销新篇章

在数字化浪潮的推动下,企业营销手段不断迭代升级。如今,一款集手机号授权自动获取、智能提醒、访客AI智能跟进及客户画像与行为记录于一体的企业智能名片小程序,正以其强大的AI智能跟进功能,助力企业开启精准营销的新篇章。 通过深…

奥比中光Astra RGBD ROS1配置(乐视RGBD)

早年买了一款乐视RGBD一直落灰,最近做一个机器人项目想重新使用起来。发现官方给的RGBD包和github上面的ros_astra_camera包并不能很好的驱动这款相机。研究了一下进行补足。 最终的结果是彩色,红外以及深度退昂均能实时读取。具体过程如下: …

【docker】安装openjdk

查看可用的 openjdk版本 docker hub 查看地址:https://hub.docker.com/_/openjdk 此图片已被正式弃用,建议所有用户尽快找到并使用合适的替代品。其他官方形象替代品的一些例子(按字母顺序列出,没有有意或暗示的偏好)…