当前位置: 首页 > news >正文

Flink-简介与基础

Flink-简介与基础

  • 一、Flink起源
  • 二、Flink数据处理模式
    • 1.批处理
    • 2.流处理
    • 3.Flink流批一体处理
  • 三、Flink架构
    • 1.Flink集群
    • 2.Flink Program
    • 3.JobManager
    • 4.TaskManager
  • 四、Flink应用程序
  • 五、Flink高级特性
    • 1.时间流(Time)和窗口(Window)
    • 2.状态流(State)
    • 3.快照(Checkpoint)
  • 总结
    • 参考文档


一、Flink起源

大数据计算引擎由批处理项流处理发展,由处理单一类型数据到批流一体方法发展。由单一功能逐步发展成更通用、更高效、更易用的一站式(混合架构)的计算引擎。计算引擎发展过程中典型架构:

  • MapReduce:批处理引擎,hadoop中核心组件,开创大数据处理核心思想,即map、reduce。
  • Storm:流处理引擎,为了满足更高时效性而产生
  • Spark:支持流式处理和批处理的统一计算引擎,基于内存计算、提高性能
  • Flink:支持流式处理和批处理的统一计算引擎,支持状态流、时间流等流处理

Flink诞生于柏林工业大学的一个大数据研究项目StratoSphere,2014年被捐献给Apache,成为Apache的顶级大数据项目。Flink将计算的主要方向定位为流处理,将批处理作为流处理的一个特殊情况。并提供了一些如数据状态、事件时间、分布式快照、watermark等高级功能。

二、Flink数据处理模式

在大数据领域早期基本都是批处理,后期随着大数据处理应用范围的拓展,逐步发到到流处理。
在这里插入图片描述

1.批处理

批处理就是对整个有界数据集进行排序、统计或者汇总计算后输出结果。批处理的数据主要有以下特点:

  • 有界:批处理数据集代表数据的有限集合
  • 持久:数据通常存储在可重复获取的持久存储设备中
  • 就绪:数据在计算之前已经就绪,不会发生变化
  • 大量:批处理操作通常是处理海量数据集的唯一方法

2.流处理

流处理是无界数据流,更符合实际情况,例如交易数据、传感器数据等都是不断产生而不会结束。流处理是产生一条数据就会处理一条数据,流处理系统需要对进入系统的数据进行实时计算。而且流数据不一定是持久化的,可能是业务系统实时产生的。

3.Flink流批一体处理

Flink即可以进行流处理,也支持对有界数据进行批处理。也就是Flink可以处理消息队列或者日志这类流式数据源的实时数据,也支持从各种数据源消费有界的历史数据。
在这里插入图片描述

三、Flink架构

Flink是一个分布式系统,采用master/slave架构,可以有效的分配和管理计算资源。集成了常见的集群资源管理器、也可以作为单独集群运行。

1.Flink集群

Flink运行时主要由一个JobManager和多个TaskManager组成。
在这里插入图片描述

2.Flink Program

Flink应用程序不是运行时程序执行的一部分,主要是将用户的Flink作业提交到JobManager,并触发执行Flink程序。

3.JobManager

JobManger主要职责是协调Flink应用程序的分布式执行,主要是调度task、监控task执行情况、协调checkpoint、故障恢复等。

4.TaskManager

TaskManager主要是执行作业流中的task,并且缓存和交换数据流。

四、Flink应用程序

Flink应用程序编写主要是指用户对数据需要进行的操作,Flink将对数据的处理分为输入、处理、输出三个步骤。其中Source负责管理数据源输入、Transformation负责数据计算、Sink负责将结果输出。Transformation是根据需求由Flink提供的算子组合而成的一个处理流程。
Flink首先会将应用构建成一个Dataflow graph。当调用env.execute()时,graph会被打包并发送到JobManager上,JobManager会协调并执行应用。
在这里插入图片描述

五、Flink高级特性

1.时间流(Time)和窗口(Window)

实际应用中有时需要对历史数据进行重新处理和分析。如果时间流只能依靠机器时钟,一些基于时间的统计与运算得出的结果可能会有错误和偏差,因为为了满足以上场景,Flink支持用数据流中的事件时间作为时间依据,而不是处理数据时的机器时间。

2.状态流(State)

流处理过程中,很多操作如何处理都需要依据之前所有数据的累积结果、一些窗口函数也需要缓存之前的数据。Flink中的算子都可以是由状态的,这些状态都是本地访问,这样可以提高吞吐量和减低延迟。
在这里插入图片描述

3.快照(Checkpoint)

大数据运行过程中无法避免故障的出现,因此需要一定的故障恢复机制。Flink通过定期状态快照和流重放来实现故障恢复和精确的一次计算。

总结

主要介绍了Flink背景和以流处理为主的设计理念,Flink的运行时架构、Flink作业的编程以及Flink的高级特性。


参考文档

1.Flink基础概念
2.Flink产生的背景以及简介
3.Flink架构

相关文章:

Flink-简介与基础

Flink-简介与基础 一、Flink起源二、Flink数据处理模式1.批处理2.流处理3.Flink流批一体处理 三、Flink架构1.Flink集群2.Flink Program3.JobManager4.TaskManager 四、Flink应用程序五、Flink高级特性1.时间流(Time)和窗口(Window&#xff0…...

mobiusp 正在创作乐曲

题目描述 mobiusp 创作了一首 n 个音符的乐曲,其中第 iii 个音符的音高为 ai​ ,但是 mobiusp 对以前的创作风格和黑历史很不满意,他希望所有音符的音高 ai 都是 1∼7 的正整数,且相邻的音高差不超过 k 。 现在他要修改若干个音符…...

Jensen不等式

如果是正数,并且它们的和等于1,f是凸函数,那么: 也可表述为: 即x期望的凸函数值小于等于x凸函数值的期望...

北邮22级信通院数电:Verilog-FPGA(11)第十一周实验(2)设计一个24秒倒计时器

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 目录 一.代码部分 1.1 counter_24.v 1.2 divid…...

什么是单元测试?

什么是单元测试 单元测试是软件开发中的一种测试方法,旨在验证各个软件组件或模块的功能正确性。在敏捷开发环境中,单元测试尤为重要,因为它有助于确保代码的质量和稳定性。下面是一些关于单元测试的关键点: 定义:单元…...

PTA-6-51(处理数组、字符串) 人口统计

题目: 本题运行时要求键盘输入10个人员的信息(每一个人信息包括:姓名,性别,年龄,民族),要求同学实现一个函数,统计民族是“汉族”的人数。 函数接口定义: pu…...

php中使用cdn

在 PHP 中使用 CDN 的一般流程如下: 1. 选择合适的 CDN 服务提供商:根据需求和预算选择合适的 CDN 服务提供商,例如阿里云CDN、腾讯云 CDN、Cloudflare 等。 2. 注册并配置 CDN 服务:在 CDN 服务提供商的网站上注册账号&#xf…...

docker部署MySQL5.7设置密码和远程访问的方法

运行MySQL docker run -p 3306:3306 --name mysql57 -v /root/mysql/log:/var/log/mysql -v /root/mysql/data:/var/lib/mysql -v /root/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORDD7txumqc2b! -d mysql:5.7 --character-set-serverutf8mb4 --collation-serverutf8…...

Vue组件基础

Vue组件基础是DOMDOMjs前端组成下的页面布局区域划分,每个组件展示时都要在页面上有一定的大小。每个设定好的页面区域都可以定义Vue的组件,组件中包含了HTML模板、样式、Vue组件对象的定义。Vue的组件是包含页面设计在内的,是一种为页面某个…...

Javascript每天一道算法题(十八)——矩阵置零-中等

文章目录 1、问题2、示例3、解决方法(1)方法1——标记数组 1、问题 给定一个 y x x 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 2、示例 示例 1: 输入:matrix [[…...

基于ROS开发的开源项目

基于ROS (Robot Operating System) 开发的开源项目很多,其中一些已经在机器人领域内非常知名。以下是一些比较著名的例子: Autoware: Autoware 是一个开源的自动驾驶车辆的软件栈,提供了从3D地图表示、环境感知(如障碍物、行人检测…...

kafka精准一次、事务、幂等性

Kafka事务 消息中间件的消息保障的3个级别 At most once 至多一次。数据丢失。At last once 至少一次。数据冗余Exactly one 精准一次。好!!! 如何区分只要盯准提交位移、消费消息这两个动作的时机就可以了。 当:先消费消息、…...

centos 7.9 下利用miniconda里的pyinstaller打包python程序为二进制文件操作方法

centos 7.9 下利用miniconda里的pyinstaller打包python程序为二进制文件操作方法 一.centos 7.9 操作系统安装 参考:https://blog.csdn.net/qq_46015509/article/details/134572030?utm_sourceminiapp_weixin 安装完成后用后台连接工具连上虚拟机 二.安装python3 …...

Motion Plan之基于采样的路径规划算法笔记

Motion Plan之搜索算法笔记 背景: 基于采样算法是一种在路径规划中广泛应用的有效方法。它通过在图中随机选择点来生成一个简化的搜索图,从而加速搜索过程。这种方法的主要优点包括减少内存使用,避免计算错误,具有动态障碍物对抗…...

idea里面常用插件

这里列出了一系列常用的 IntelliJ IDEA 插件,它们可以提高开发效率、简化操作,以及帮助进行代码分析和优化。以下是每个插件的简要介绍: GenerateAllSetter:生成对象的所有 set 方法和 get 方法,方便对象之间的转换。该…...

回归算法优化过程推导

假设存在一个数据集,包含工资、年龄及贷款额度三个维度的数据。我们需要根据这个数据集进行建模,从而在给定工资和年龄的情况下,实现对贷款额度的预测。其中,工资和年龄是模型构建时的两个特征,额度是模型输出的目标值…...

某高品质房产企业:借助NineData平台,统一数据库访问权限,保障业务安全

该企业是中国领先的优质房产品开发及生活综合服务供应商。在 2022 年取得了亮眼的业绩表现,销售额市场占有率跻身全国前五。业务涵盖房产开发、房产代建、城市更新、科技装修等多个领域。 2023 年,该企业和玖章算术(浙江)科技有限…...

Arduio开发STM32所面临的风险

据说micro_ros用到了arduino,然后用arduino搞stm32需要用到这个Arduino STM32的东西,然后这里申明了:这些代码没有经过严格测试,如果是向心脏起搏器,自动驾驶这样要求严格的的情况下,这个东西不能保证100%不发生问题&a…...

精准人脉引流软件的开发流程与涉及到的技术

一、精准人脉引流软件的开发流程 1. 确定需求:首先,我们需要明确软件的需求,包括目标用户、功能需求、性能需求等。这些需求将直接影响到软件的开发方向和最终效果。 2. 系统设计:根据需求,进行系统设计,…...

Mysql数据库 20.DCL数据控制语言

因这类SQL语言开发人员操作较少,主要是数据库管理员(DBA)使用,所以前文没有提及,这篇文章进行补充说明 DCL数据控制语言 用来管理数据库用户,控制数据库的访问权限 1.管理用户 1.1 查询用户 select * f…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

[特殊字符] 手撸 Redis 互斥锁那些坑

📖 手撸 Redis 互斥锁那些坑 最近搞业务遇到高并发下同一个 key 的互斥操作,想实现分布式环境下的互斥锁。于是私下顺手手撸了个基于 Redis 的简单互斥锁,也顺便跟 Redisson 的 RLock 机制对比了下,记录一波,别踩我踩过…...

相关类相关的可视化图像总结

目录 一、散点图 二、气泡图 三、相关图 四、热力图 五、二维密度图 六、多模态二维密度图 七、雷达图 八、桑基图 九、总结 一、散点图 特点 通过点的位置展示两个连续变量之间的关系,可直观判断线性相关、非线性相关或无相关关系,点的分布密…...

MySQL体系架构解析(三):MySQL目录与启动配置全解析

MySQL中的目录和文件 bin目录 在 MySQL 的安装目录下有一个特别重要的 bin 目录,这个目录下存放着许多可执行文件。与其他系统的可执行文件类似,这些可执行文件都是与服务器和客户端程序相关的。 启动MySQL服务器程序 在 UNIX 系统中,用…...

使用homeassistant 插件将tasmota 接入到米家

我写一个一个 将本地tasmoat的的设备同通过ha集成到小爱同学的功能,利用了巴法接入小爱的功能,将本地mqtt转发给巴法以实现小爱控制的功能,前提条件。1需要tasmota 设备, 2.在本地搭建了mqtt服务可, 3.搭建了ha 4.在h…...

【向量库】Weaviate 搜索与索引技术:从基础概念到性能优化

文章目录 零、概述一、搜索技术分类1. 向量搜索:捕捉语义的智能检索2. 关键字搜索:精确匹配的传统方案3. 混合搜索:语义与精确的双重保障 二、向量检索技术分类1. HNSW索引:大规模数据的高效引擎2. Flat索引:小规模数据…...

Ansys Maxwell:线圈和磁体的静磁 3D 分析

本博客展示了如何在 Ansys Maxwell 中执行静磁 3D 分析,以计算载流线圈和永磁体之间相互作用产生的扭矩。在这个例子中,线圈中的电流产生一个沿 Y 轴指向的磁场,而永磁体沿 X 轴被磁化。这种配置导致围绕 Z 轴的扭矩。分步工作流程包括构建几…...

使用MounRiver Studio Ⅱ软件写一个CH592F芯片的ADC采集程序,碰到的问题

MounRiver Studio Ⅱ 默认是不开启浮点计算的,所以有些浮点功能不能用,碰到问题是 while (1) {DelayMs (100);tmp Read_Temperature (0);sprintf (tempBuffer, "temp:%.2f\r\n", tmp); // 格式化温度值到字符串。使用%f要开启相应的…...