【流计算】流计算概论
前言
作者在之前写过一个大数据的专栏,包含GFS、BigTable、MapReduce、HDFS、Hadoop、LSM树、HBase、Spark,专栏地址:
https://blog.csdn.net/joker_zjn/category_12631789.html?fromshare=blogcolumn&sharetype=blogcolumn&sharerId=12631789&sharerefer=PC&sharesource=Joker_ZJN&sharefrom=from_link
流计算和大数据是紧密相关的,现在接那个大数据专栏,继续向下写流计算专栏。这是第一篇。
目录
1.什么是流计算
2.流计算的架构
1.什么是流计算
流计算,就是对流式数据的计算,是专门用来处理流式数据的。因此在聊流计算之前,我们要先明白什么是静态数据和流式数据。
静态数据:
静态数据不是实时产生的,是有一定历史的数据,静态数据一般是用来进行一些统计分析的,比如数据仓库中的数据就是典型的静态数据。再比如MapReduce做统计分析,存在HDFS中的数据也是静态数据。
流式数据:
流式数据其实就是动态数据,是实时产生的,其应用场景对实时性要求很高,基本上是要求需要对其做实时处理的数据。比如:
-
物联网中的实时监测设备,诸如烟感、PM2.5监测、安防等设备,要对实时的流式数据做实时的分析,从而判断是否触发报警之类的操作。
-
购物网站上的“可能感兴趣”的推荐,就是基于用户实时点击浏览产生的流式数据来给客户进行推荐的。
上面这样说只是一方面,其实仔细思考就会发现静态数据、动态数据之间没有很明确的边界,静态数据也会有新的数据进来,流式数据的业务场景中也有对历史数据计算的需求。
其实从业务场景上能更好的区分是不是流计算的场景,流计算的场景一句话就能概括:
大量数据实时产生,涌过来,从这些大量实时数据中计算出实时结果。
流式数据的特征:
-
快速持续的到达
-
来源众多、格式复杂
-
数据量大,不太关注存储,一旦经过处理后,要么被丢弃,要么被归档存储。
2.流计算的架构
流数据的量大、产生的速度快、来源和格式杂,这些特点都是会拉低计算速度的点,所以流计算的核心就是要就是要稳定可靠高效的处理流式数据。市面上的各种流计算框架针对这些核心问题,各自给出了自己的解法,常用的流计算框架:
-
twitter storm
-
spark strem
流计算是整个大系统的一环,接下来我们看看引入流计算的系统架构一般长什么样子。
以flink为例,展示一下流计算常见架构:
观察上面系统,可以发现引入流计算的系统架构一般有以下部分组成:
-
数据采集
-
数据传输
-
数据处理
-
数据存储
-
数据展现
数据采集:
传感器、各个服务模块上的各个日志代理等。
数据采集在软件层面无非就是从浏览器、手机终端等设备将数据发给采集服务器。
采集服务器要接收数据,在性能上要有所考虑,关于性能无非以下点:
-
吞吐量(TPS),要在IO模型上有所抉择,阻塞?非阻塞
-
时延,有时延要求时首先要报时延,再说拉高吞吐量的事儿
-
TCP连接,当有大量连接需要维持时,用非阻塞IO服务器,如netty;当连接数量较少时,用长连接和连接池
数据传输:
负责数据的流转,数据总线,一般用MQ来实现,数据传输要关注的点:
- 吞吐量,流式数据的量大,吞吐量肯定要跟上,不能造成数据积压,数据才有实时性。
- 可靠性,可靠性肯定要跟上,数据尽可能不要丢。
数据处理:
流计算的核心,也是流计算框架主要工作的环节,用计算引擎来对流进行:
-
转化、清洗、转换
-
计数、求和、均值、标准差、极值、聚合、关联、直方图等
数据存储:
根据自己的业务场景来决定计算出来的结果是否需要存储?如果要存储就要考虑自己业务场景的需求:
-
数据量大不大?
-
时延要求如何?
-
吞吐量大不大?
然后来选择对应的存储介质,内存?关系型数据库?非关系型数据库?分布式文件系统?等等等等
3.常见流计算场景
以下是流式计算的一些典型应用场景:
- 实时数据分析
- 金融交易:实时监测市场波动、交易异常和欺诈检测。
- 物联网(IoT):实时处理传感器数据,监控设备状态,触发警报。
- 日志处理与监控
- 系统监控:实时监控服务器日志,快速发现并处理系统故障。
- 应用性能管理(APM):实时分析应用日志,优化性能瓶颈。
- 社交媒体分析
- 趋势分析:实时分析社交媒体上的热点话题和用户情绪。
- 推荐系统:根据用户实时行为更新推荐内容。
- 网络安全
- 入侵检测:实时分析网络流量,识别潜在的安全威胁。
- 异常检测:监控网络活动,及时发现异常行为。
- 电子商务
- 库存管理:实时更新库存信息,避免超卖情况。
- 订单处理:实时跟踪订单状态,提高客户满意度。
- 智能制造
- 生产监控:实时监控生产线状态,提高生产效率。
- 预测性维护:通过分析机器运行数据,提前预测并预防故障。
- 交通与物流
- 交通管理:实时分析交通流量,优化交通信号控制。
- 物流追踪:实时更新货物位置,提高物流效率。
相关文章:

【流计算】流计算概论
前言 作者在之前写过一个大数据的专栏,包含GFS、BigTable、MapReduce、HDFS、Hadoop、LSM树、HBase、Spark,专栏地址: https://blog.csdn.net/joker_zjn/category_12631789.html?fromshareblogcolumn&sharetypeblogcolumn&sharerI…...
20230819盘锦锦州葫芦岛自驾
2023年08月19日,上午带娃和老人驾车前往朝阳,逛凤凰山,中午吃了免费的素面味道不错。下午开车去鸟化石公园单独买儿童票43元。晚上驾车到盘锦,住红海滩民宿95元。 2023年08月20日,逛盘锦红海滩一天,有稻田画…...

Unity 与虚幻引擎对比:两大游戏开发引擎的优劣分析
在游戏开发领域,Unity 和虚幻引擎(Unreal Engine)是两款最为知名且广泛使用的引擎。它们各有特点,适合不同类型的开发者和项目。在这篇博客中,我们将深入探讨这两大引擎的核心功能、适用场景、优缺点,以及如…...

UDS_4_传输存储的数据功能单元
目录 一. DTC 二. 0x14服务 三. 0x19服务 3.1 0x19服务 3.2 0x01子功能 3.3 0x02子功能 3.4 0x04子功能 3.5 0x06子功能 3.6 0x0A子功能 一. DTC 》DTC-Diagnostic Trouble Code J1939-73 DTCFormat DTC SPN FMI CM OC 8-1位 8-1位 8-6位 5-1位 8位 7-1位 字节1 字节…...

第二百五十八节 JPA教程 - JPA查询选择两个实体示例
JPA教程 - JPA查询选择两个实体示例 以下JPQL从两个实体中选择。 List l em.createQuery("SELECT d, m FROM Department d, Professor m WHERE d m.department").getResultList();例子 以下代码来自Professor.java。 package cn.w3cschool.common;import java.…...
数据库三级模式结构
三级模式结构 1. 外模式(External Schema)——“用户看到的楼层”2. 概念模式(Conceptual Schema)——“图书馆的核心”3. 内模式(Internal Schema)——“图书馆的地下室”举例1. 概念模式的例子2. 外模式的…...
【小程序websocket最佳实践,有心跳和断线重连】
小程序websocket最佳实践,有心跳和断线重连 封装了WebSocketHandler类,用于管理websocket链接,保证链接的稳定和可靠,该类主要适用于小程序,但其设计思想和方法也适用于其他平台。 export default class WebSocketHa…...

自然资源部最新Nature正刊!!!
2024年8月21日,国际顶级期刊《Nature》发表了自然资源部第二海洋研究所李家彪院士为通讯作者,张涛为第一作者的论文“超慢速扩张加克洋中脊的高变化岩浆增生”。这一成果颠覆了国际海洋学术界半个多世纪以来一直认为的超慢速扩张洋中脊岩浆供给极度贫瘠的…...

git分支-创建、合并、删除
Git会将每次提交串成一条时间线,这条时间线就是一个分支。在最初,只有一个master分支 在目录下创建项目 对目录进行输入 项目被修改 创建dev分支 合并分支 删除dev分支...
Python:Spoonfed - (2-10) 激励选择脚本(搬砖)
https://www.patreon.com/posts/python-spoonfed-31572219 2019年11月15日 利用上一课的选择函数,我们现在可以拼凑出一些脚本(有一些事情我们还没有解释,但应该很容易理解)。以下代码将允许您选择当前所选对象的父对象、顶级对…...
VS Code Python 文件导入提示 xxx Module 不存在解决方式
VS Code Python 文件导入提示 xxx Module 不存在解决方式 引言正文如何打开 setting.json 文件引言 之前在 https://blog.csdn.net/u011699626/article/details/142612579?spm=1001.2014.3001.5501 一文中我们介绍了如何配置 VS code 中 Jupyter Notebook 的文件导入环境,这…...

Android中的Activity与Fragment:深入解析与应用场景
在Android应用开发中,Activity和Fragment是两个核心概念,它们各自扮演着不同的角色,共同构成了用户界面的基础。理解并熟练掌握这两个组件的使用,对于开发高效、灵活且用户友好的Android应用至关重要。本文将深入解析Activity与Fr…...

Flux【lora模型】【真人模型】:极致逼真,小红书真实风格|旅游拍照|景点打卡
大家好我是安琪!!! 今天和大家推荐一款基于Flux训练的真人写实的lora模型:Flux_小红书真实风格丨日常照片丨极致逼真。一看这个模型的命名,就可以猜测出以小红书日常真实拍摄的照片为数据集训练而来,该模型…...

python基础语法--顺序结构
Python中的顺序结构主要包括流程控制语句,如 if、while 和 for 语句。这些语句允许你在程序中定义不同的执行路径,从而根据条件或循环次数来改变代码的执行流程。下面详细介绍这些语句的使用方法和示例。 if 语句 if 语句用于根据某个条件来决定是否执…...

软件游戏运行缺少vcruntime140.dll怎么办?总结四种有效简单方法
1. 文件基本信息 1.1 定义与作用 vcruntime140.dll是Microsoft Visual C 2015 Redistributable Package的一部分,它包含了C运行时库,用于支持使用Visual C开发的Windows应用程序。这个动态链接库(DLL)文件提供了程序执行时所需的…...

(undone) 阅读 MapReduce 论文笔记
参考:https://pdos.csail.mit.edu/6.824/papers/mapreduce.pdf 摘要:简单介绍了 MapReduce 是在大型分布式系统上工作的 Introduction 的内容总结: 1.介绍背景:为什么我们需要分布式系统?MapReduce 的意义是哪些 2.简…...

sql注入工具升级:自动化时间盲注、布尔盲注
项目地址:https://github.com/iamnotamaster/sql-injecter 给我之前写的sql注入脚本进行了一些升级,此文章就是对升级内容的分析,升级内容如下: 使用占位符foo来填充payload里需要经常修改的部分 自动判断循环 支持爆破和二分查…...
字节C++抖音直播一面-面经总结
1、Python和C的区别,Python的程序执行过程是怎样的?C和C呢? 解释型-编译型 不用分号-用分号 自动垃圾回收-delete 相对较慢-执行速度快 丰富的库-标注模板库 .py-解释器-字节码-PVM-输出结果 c-c with class malloc-new 标准库-STL 不重载-函数重载和…...
浅谈stm32的GPIO引脚配置模式
STM32的GPIO(通用输入输出)引脚可以被配置为多种模式,以适应不同的应用场景。下面介绍一些一些常见的STM32 GPIO引脚模式: 模拟输入模式(Analog Input Mode):在这种模式下,GPIO引脚被…...

Meta Orion 原型的生产成本约为 10,000 美元
Orion Meta 是一项突破性的增强现实项目,展示了其迄今为止最先进的原型。经过多年的研究和数百万美元的开发,Meta 打造出了一款仅重 98 克的增强现实眼镜,能够将全息图投射到视线范围内的任何地方。这款眼镜由一个先进的输入系统驱动…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...

短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...

算法—栈系列
一:删除字符串中的所有相邻重复项 class Solution { public:string removeDuplicates(string s) {stack<char> st;for(int i 0; i < s.size(); i){char target s[i];if(!st.empty() && target st.top())st.pop();elsest.push(s[i]);}string ret…...

网页端 js 读取发票里的二维码信息(图片和PDF格式)
起因 为了实现在报销流程中,发票不能重用的限制,发票上传后,希望能读出发票号,并记录发票号已用,下次不再可用于报销。 基于上面的需求,研究了OCR 的方式和读PDF的方式,实际是可行的ÿ…...

【PX4飞控】mavros gps相关话题分析,经纬度海拔获取方法,卫星数锁定状态获取方法
使用 ROS1-Noetic 和 mavros v1.20.1, 携带经纬度海拔的话题主要有三个: /mavros/global_position/raw/fix/mavros/gpsstatus/gps1/raw/mavros/global_position/global 查看 mavros 源码,来分析他们的发布过程。发现前两个话题都对应了同一…...

数据挖掘是什么?数据挖掘技术有哪些?
目录 一、数据挖掘是什么 二、常见的数据挖掘技术 1. 关联规则挖掘 2. 分类算法 3. 聚类分析 4. 回归分析 三、数据挖掘的应用领域 1. 商业领域 2. 医疗领域 3. 金融领域 4. 其他领域 四、数据挖掘面临的挑战和未来趋势 1. 面临的挑战 2. 未来趋势 五、总结 数据…...

作为点的对象CenterNet论文阅读
摘要 检测器将图像中的物体表示为轴对齐的边界框。大多数成功的目标检测方法都会枚举几乎完整的潜在目标位置列表,并对每一个位置进行分类。这种做法既浪费又低效,并且需要额外的后处理。在本文中,我们采取了不同的方法。我们将物体建模为单…...