Flink 学习一 Flink 简介

news2024/11/25 14:13:36

Flink 学习一

https://flink.apache.org/

1.快速认识Flink

1.1 离线批计算与实时流式计算

批计算:有界流

流式计算:无界流

在这里插入图片描述

  • 批计算:针对有界流,在计算结果前可以看到整个数据集;
  • 流计算:针对无界流,永远无法看到输入数据的整体,数据的输入无法看到结束,数据到达就计算,输出当时(实时)的计算结果;输出结果也是一个无界流;数据到达也可以理解为可以把无界流变成有界流在计算,比如时间划分,数据量划分

思考:如果批很小,是不是也可以理解为流计算,流计算中如果每次数据到达都是一批数据,是不是也是可以理解成为批计算;

是的,两个概念有重复的地方,这里Flink 把流计算和批计算进行了API 层面的统一,是一个流批一体的计算框架;

1.2 Flink 基本框架

分布式,有状态的实时流式处理框架

在这里插入图片描述

数据来源可能是数据库,日志,LOT,页面Click 等产生的数据,经过结构化数据之后,可以是存数据库,或者是队列形式 提供给Flink ,在经过计算后输出给Application,日志输出,或者是数据库存储;

Flink 主要是使用java语言开发,对用户提供java,Scala ,python 编程 api,

Flink 以流式数据作为基础,引入有界流来实现批计算,从而实现流批一体

1.3 Flink 运行时架构

一个Flink程序,用户会编写数据的处理逻辑,数据的处理不会直接使用这些处理逻辑;Flink 计算框架会把用户编写的处理逻辑当做一个任务提交给系统,然后由计算框架来把处理逻辑拆分成task ,然后再集群上运行task ;

在这里插入图片描述

Flink 计算采用 Master-Slave 架构

  • Master的角色是 JobManager ,负责集群和作业管理
  • Slave 的角色是 TaskManager, 负责执行计算逻辑
  • 客户端程序,提交任务到 集群

1.4 Flink 的特性

1.使用场景

  • 事件驱动引用:实时风控,实时推荐,实时营销
  • 流,批数据分析:
  • 数据管道及ETL:读取数据,处理数据,写入数据

2. 状态管理(状态管理机制)

有状态的Flink应用程序针对本地状态访问进行了优化。任务状态始终保持在内存中,或者,如果状态大小超过可用内存,则保持在磁盘数据结构上的高效访问中。因此,任务通过访问本地(通常在内存中)状态来执行所有计算,从而产生非常低的处理延迟。

Flink通过定期异步地将本地状态检查点指向持久存储,在出现故障时保证了一次状态的一致性。

在这里插入图片描述

3.强大的准确性保证

  • exactly-once 状态一致性
  • 事件时间处理
  • 专业的迟到数据处理

4.灵活丰富的API

越往下越底层,拿到的数据越多,可控的细节越多

  • 流批数据之上的SQL 查询
  • 流批数据之上的 TableAPI
  • datastream 流处理算子api , dataset 批处理api
  • 精细可控的processFunction

在这里插入图片描述

5.规模弹性可控

  • 可扩展的分布式框架 算子粒度每个task 的并行度控制
  • 支持超大状态管理
  • 增量checkpoint 机制

6.运维能力

  • 灵活部署
  • 高可用性设置
  • 保存点恢复机制

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

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

相关文章

Nacos的安装和部署

接下来的时间,我会将Nacos的安装部署,以及在微服务中将其作为配置中心,注册中心,以及它的高级应用会一一为大家分享,今天为大家分享的是Nacos的安装和部署,以windows为例。 1. 下载安装包 官网下载地址&a…

LaTeX在双栏文章里面放单栏或双栏图片【有图有代码】

LaTeX在双栏文章里面放单栏或双栏图片【有图有代码】 双栏文章双栏文章放单栏图片双栏文章放单栏图片 双栏文章 在需要双栏的地方加入\begin{multicols}{2}…\end{multicols} 一般我们可能会希望摘要部分是单栏的。 其余部分设置为双栏,如下: \begin{m…

wxPython 矩形选择框 测试

如下图&#xff0c;这种矩形选择框在图形软件里是必备操作&#xff0c;用python怎么实现&#xff1f;我用wxpython 做了一个例子。 代码如下&#xff1a; #!/usr/bin/env python # -*- coding: utf-8 -*-# Project: test # File : SelectRectang.py # Author : Long.Xu <…

违禁词管理

目录 一、添加违禁词 1.添加一个违禁词 2.批量添加违禁词 二、违禁词实时检测 三、查看违禁词 四、删除违禁词 1.删除一个违禁词 2.批量删除违禁词 五、清空违禁词 一、添加违禁词 1.添加一个违禁词 添加违禁词 ?([\s\S]*) b:$读 违禁词/%群号% a []$ 如果:%括号1% 请…

Java设计模式——策略模式

1. 策略模式简介 策略模式: 策略模式是一种行为型模式, 它将对象和行为分开, 将行为定义为一个行为接口和具体行为的实现 策略模式最大的特点是行为的变化, 行为之间可以相互替换 每个if判断都可以理解为一个策略. 本模式是的算法可独立于使用它的用户而变化 2. 模式结构 策略…

全屋智能家居搭建初级指南(装修用户)

环境&#xff1a; 小M等智能设备 新装修用户 稳定网络环境 规划好电路布局 问题描述&#xff1a; 全屋智能家居如何搭建&#xff0c;初级指南&#xff08;装修用户&#xff09; 下面部分内容摘自小M智能家居解决方案&#xff1a; 一、装修中需要注意什么&#xff1f; …

39 # events 模块的实现原理

观察者模式&#xff1a;会有两个类&#xff0c;观察者会被存储到被观察者中&#xff0c;如果被观察者状态变化&#xff0c;会主动通知观察者&#xff0c;调用观察者的更新方法 发布订阅好处&#xff1a;可以解耦合 const EventEmitter require("events");// 使用自…

提前预体验阿里大模型“通义千问”的方法来了!

随着AI大模型的浪潮席卷全球&#xff0c;如今的AI技术已经颠覆了大家对传统AI的认识&#xff0c;微软更是用浏览器与搜索引擎上的实践&#xff0c;证明了当今的AI技术具备打破行业格局的能力。 对于我们应用开发者来说&#xff0c;AI基建的建设与竞争是无法参与的&#xff0c;…

数据结构——查找

文章目录 **1 查找的基本概念****2 顺序查找和折半查找****2.1 顺序查找****2.2 折半查找****2.3 分块查找** **3 树型查找****3.1 二叉排序树BST****3.1.1 二叉排序树的定义****3.1.2 二叉排序树的查找****3.1.3 二叉排序树的插入****3.1.4 二叉排序树的构造****3.1.5 二叉排序…

C#提升(一、泛型)

一、什么是泛型 泛型&#xff0c;即“参数化类型” 我们来看以下代码&#xff0c;目的很明确&#xff0c;就是显示参数类型&#xff0c;这种类似的代码或者说只有参数类型不同&#xff0c;但是功能相同时&#xff0c;我们如何让代码写的更优雅&#xff1f; 在泛型没有出现的…

LaTeX花式引用章节、图片、公式【有图有代码】

LaTeX花式引用章节、图片、公式【有图有代码】 1 使用~\cite, ~\cref, ~\autoref~\cref~\autoref~\ref 1 使用~\cite, ~\cref, ~\autoref 为什么要使用~ 因为 ~ 符号起到限制换行的作用&#xff0c;通常情况下&#xff0c;LaTeX会根据需要自动确定在引用标签和编号之间的换行点…

Flink 学习二 Flink 编程基础API

Flink 学习二 Flink 编程基础API 1. 基础依赖引入 <dependency><groupId>org.apache.flink</groupId><artifactId>flink-java</artifactId><version>1.14.4</version></dependency><dependency><groupId>org.apa…

MacOS安装与卸载Zookeeper

文章目录 安装1.下载2.移动至/usr/local 目录下3.进入 ZooKeeper 目录4. 拷贝出一份新的配置文件5.启动 ZooKeeper 服务器6.验证 ZooKeeper 是否成功启动 关闭卸载参考 安装 1.下载 https://downloads.apache.org/zookeeper/zookeeper-3.7.1/ 2.移动至/usr/local 目录下 将…

驻波比理解

VSWR(Voltage Standing Wave Ratio)代表电压驻波比。要完全理解这个术语&#xff0c;需要知道什么是“驻波”。 假设两个波长相同的波以相反的方向传播&#xff0c;如下所示。一个波表示为蓝线&#xff0c;它朝着正确的方向旋转。另一个波用绿线表示&#xff0c;它在左方向旋转…

Android大图加载优化方案

我们在编写Android程序的时候经常要用到许多图片&#xff0c;不同图片总是会有不同的形状、不同的大小&#xff0c;但在大多数情况下&#xff0c;这些图片都会大于我们程序所需要的大小。比如微博长图&#xff0c;海报等等。所以我们就要对图片进行局部显示。 大图加载基本需求…

【QQ界面展示-监听键盘事件 Objective-C语言】

一、关于这个通知,我们就说到这里, 1.接下来,就看一下, 我们说了这么一堆,目的是为了什么, 目的是为了监听我们那个键盘的点击事件吧, 我们说了一堆,目的是为了监听我们这个键盘的弹出事件、不是点击事件, 当键盘弹出以后,我们是不是要做一件事儿, 那么,我们知道…

虚拟机网卡/网络配置,静态IP配置

文章目录 1. Vmvare设置 “编辑->虚拟机网络编辑”2. 新建一个虚拟机并给它设置网卡3. 配置eth0网卡为静态IP vim /etc/sysconfig/network-scripts/ifcfg-eth04、测试 1. Vmvare设置 “编辑->虚拟机网络编辑” 这里设置了3个虚拟网络(两个主机模式&#xff0c;这两个网络…

2023.6.20 GPIO子系统编写LED驱动

作业&#xff1a;通过GPIO子系统编写LED驱动&#xff0c;应用程序控制LED灯亮灭 &#xff08;1&#xff09;led.h #ifndef __LED_H__ #define __LED_H__ // typedef struct{ // unsigned int MODER; // unsigned int OTYPER; // unsigned int OSPEEDR; // un…

FreeRTOS实时操作系统(五)临界区及任务调度器

系列文章目录 文章目录 系列文章目录临界区代码保护任务调度器的挂起与保护 临界区代码保护 临界区&#xff1a;是指那些必须要完整运行的&#xff0c;不能被打断的代码 适用于&#xff1a; 1.外设初始化 2.操作系统的代码有很多不能被打断 3.用户自己的需求 一般在中断、任…