流数据处理

article/2025/9/14 12:19:42

流数据处理strom

在2011年Storm开源之前,由于Hadoop的火红,整个业界都在喋喋不休地谈论大数据。Hadoop的高吞吐,海量数据处理的能力使得人们可以方便地处理海量数据。但是,Hadoop的缺点也和它的优点同样鲜明——延迟大,响应缓慢,运维复杂。
有需求也就有创造,在Hadoop基本奠定了大数据霸主地位的时候,很多的开源项目都是以弥补Hadoop的实时性为目标而被创造出来。而在这个节骨眼上Storm横空出世了。
在这里插入图片描述
一个计算任务成为一个Topology(拓扑逻辑),由多个spout和多种bolt组成
stream:数据流,是时间无上界的tuple元祖序列
Tuple:一次消息传递的基本单元,可以被理解为键值对
task:逻辑线程,是不会变的,又代码决定
executor:物理线程,每一个executor执行多个task,executor是动态分配的,和整个集群相关,因此一个集群不止有一个job,当所有的executor用完时,新提交的job只能等待在这里插入图片描述
nimbus:总控节点
supervisor:工作节点,负责监听从nimbus分配的任务,据此启动或停止工作进程(worker)
supervisor节点包含多个worker占位槽,集群中的所有topology共用。
zookeeper集群:Zookeeper是Storm重点依赖的外部资源。Nimbus和Supervisor甚至实际运行的Worker都是把心跳保存在Zookeeper上的。Nimbus也是根据Zookeerper上的心跳和任务运行状况,进行调度和任务分配的。zooker保存所有的元数据
nimbus和zookeeper通信,zookeeper和supervisor通信,nimbus和zookeeper不直接通信
zookeeper:

  1. task文件夹保存task信息
  2. assignment文件夹保存任务代码
  3. workerbeats文件夹保存所有worker的心跳信息

一个supervisor对应N个worker节点
一个worker节点启动N个executor
一个executor对应N个task

在这里插入图片描述

消息保证机制

每个topology有一个超时设置,如果strom在超时时间内检测不到某tuple是否成功,则标记失败,重新发送

strom分布式

  1. task之间的并行
  2. 先后task之间的流水线并行

Acker 异或算法

原理:收集所有的spout和bolt接受ID和发送ID,然后异或,如果为0,说明记录正确
在这里插入图片描述


http://chatgpt.dhexx.cn/article/CBPJycam.shtml

相关文章

一. 流式处理简介

https://www.cnblogs.com/shenlanzhizun/p/6027042.html Java技术学习 https://www.itkc8.com 一. 流式处理简介 在我接触到java8流式处理的时候,我的第一感觉是流式处理让集合操作变得简洁了许多,通常我们需要多行代码才能完成的操作,借助…

Kafka基础-流处理

1. 什么是流处理? 首先,让我们说一下什么是数据流(也称为事件流)?它是无边界数据集的抽象说法,无边界意味着无限且不断增长,因为随着时间的推移,新数据会不断地到来。 除了无边界的…

流处理基本介绍

1. 什么是流处理 一种被设计来处理无穷数据集的数据处理系统引擎 2. 流处理的几个概念 1. 无穷数据(Unbounded data):一种持续生成,本质上是无穷尽的数据集。它经常会被称为“流数据”。然而,用流和批次来定义…

Spark Streaming与流处理

一、流处理 1.1 静态数据处理 在流处理之前,数据通常存储在数据库,文件系统或其他形式的存储系统中。应用程序根据需要查询数据或计算数据。这就是传统的静态数据处理架构。Hadoop 采用 HDFS 进行数据存储,采用 MapReduce 进行数据查询或分…

什么是流处理

流处理正变得像数据处理一样流行。流处理已经超出了其原来的实时数据处理的范畴,它正在成为一种提供数据处理(包括批处理),实时应用乃至分布式事务的新方法的技术。 1、什么是流处理? 流处理是不断合并新数据以计算结果…

嵌入式软件升级方法

一、U盘升级 1.在u盘根目录新建文件夹,命名为‘upgrade’ 2.将软件复制到upgrade文件夹中 3.将u盘插到嵌入式服务器usb口上,断电重启服务器 二、PC工具升级 1.打开PC工具,选中要升级的机器,点击‘素材管理’选项卡&#xff0c…

嵌入式软件架构设计之分层设计

关注、星标公众号,不错过精彩内容 整理:黄工 素材来源:网络 参考来源: https://blog.51cto.com/kenotu/1614390 在正规的项目开发中,项目往往是并行开发的,也就是说硬件设计、底层软件设计、应用软件设计等…

嵌入式系统软件层次结构

文章目录 嵌入式系统软件嵌入式系统软件的层次结构硬件抽象层 嵌入式操作系统嵌入式操作系统——WinCE嵌入式操作系统——VxWorks嵌入式操作系统——Linux嵌入式Linux OS的特点 嵌入式操作系统——uCOS嵌入式操作系统—— PalmOS其他嵌入式操作系统华为鸿蒙系统 嵌入式系统软件…

嵌入式软件开发必备知识体系

嵌入式软件开发学习路线 前言 本章节主要介绍嵌入式软件开发概念以及大致的学习知识点的范围 一、嵌入式软件是什么? 百度百科:嵌入式工程师是指具有C/C语言、汇编语言等基础,熟悉模拟电子技术等硬件知识,了解处理器体系结构&a…

嵌入式开发 | 嵌入式开发设计文档该怎么写?

关注星标公众号,不错过精彩内容 作者 | strongerHuang 微信公众号 | 嵌入式专栏 俗话说,不会写文档的工程师不是好的工程师! 如果你只会写代码,而从不写文档,迟早有一天会“出事”。这不是危言耸听,现实生活…

简单嵌入式系统软件架构

本文为原创,以下链接有比较及时的更新: https://www.yuque.com/docs/share/334f4a3d-2974-49db-8f68-4db6601a0d21?# 《简单嵌入式系统》 引言 本文描述的内容,适用范围是简单嵌入式系统。举一些可能不恰当的例子,如手环、蓝牙…

嵌入式软件设计层级划分概念

嵌入式软件设计层级划分概念 设计过程中体会的细化更新部分: 层级描述备注应用层直接控制应用,比如led_light_on(),led_light_off() 器件层(如果操作复杂可进一步划分为器件应用层和器件驱动层)比如:实现led_light_on …

浅议嵌入式软件测试

近年来,随着嵌入式系统的功能和复杂性不断增加,其开发时间和成本也随之不断上升。对于安全关键领域的嵌入式系统和软件来说,其稳定性和可靠性往往需要通过大量的测试和验证来保证。 01.一般软件测试vs嵌入式软件测试 嵌入式软件测试针对嵌入…

嵌入式程序设计思路

项目做的多了,深切地体会到架构的重要性。 俗话说,没有好的架构,移植和复用是件很痛苦的事,只能重复的造轮子。特别是嵌入式的代码,如果应用层中间穿插着驱动层的代码,维护起来是一件相当痛苦的事情。 这…

嵌入式应用软件架构设计

要做到嵌入式应用的代码逻辑清晰,且避免重复的造轮子,没有好的应用架构怎么行。 如果没有好的架构,移植将会是一件很痛苦的事情。 如果没有好的架构,复用是最大的难题,没法更大限度的复用原有的代码。 如果没有好的架…

嵌入式软件设计(1)--概述

嵌入式软件的定义及特点 嵌入式系统的定义 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪、功能、可靠性、功耗严格要求的专用计算机系统。 其中要说明的几个点是 1. 嵌入式系统是专用系统,而不是通用系统,其往往…

嵌入式软件设计必看书籍

提高C语言编程能力 以上4本书籍可以提高C语言编程能力,深入理解C语言指针用法,深入理解C语言标准。 提高软件架构设计能力 以上2本书籍掌握以下知识: 1、软件设计原则。 2、软件设计模式。 3、软件设计构架。 4、软件设计思维。 提升对RTO…

嵌入式软件架构的设计

嵌入式软件架构的设计 大多数嵌入式程序员学习编程,都是从开发板的附带例程开始。之后工作也会继续参考那些例程,很多编程习惯、方式也会受之影响。 其实开发板式的编程方式与工作中实际需求的并不完全一致。 开发板的通常卖给初学者,注重…

嵌入式软件设计(stm32快速上手)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 有很多的培训机构在培训嵌入式的时候,一上来会讲很多的理论知识。其实这个时候要是能通过实操帮助学员快速入门、快速上手、快速看到效果,或许这才是最重要的。 1、安装mdk软件 类…

举例说明嵌入式框架该如何分层

关注、星标公众号,直达精彩内容 素材来源:https://blog.csdn.net/weixin_46185705/article/details/122536374 整理:技术让梦想更伟大 | 李肖遥 前言 为了能够使得产品得到更好的开发速度与以后更好的迭代和移植,框架分层是很有必…