![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Flink
文章平均质量分 83
实时计算引擎
败给你的黑色幽默丶
if i say you're the one would you believe me;
if i ask you to stay would you show me the way
展开
-
【Flink知识汇总】【Join专题】
Flink Join 专题Join 的应用场景批Join和流Join的区别Flink 双流Join1. Window Join认识Window JoinFlink APISQL API解决方案的特点解决方案的适用场景2. Interval Join2.1 认识Interval Join2.2 Flink API2.3 SQL API2.4 解决方案的特点2.5 解决方案的适用场景3. Regular Join3.1 认识Regular Join3.2 SQL API3.3 解决方案的特点3.4 解决方案的适原创 2022-03-30 17:08:24 · 1369 阅读 · 1 评论 -
【Flink】Kafka Source和sink的容错
https://www.zhihu.com/people/bigdata-qingniu/zvideos?page=3原创 2022-03-14 13:20:09 · 2464 阅读 · 0 评论 -
【Flink】随机前缀解决数据倾斜
Source如果是多并行度,其采用的是轮询;KeyBy数据倾斜:BroadCast或者Custom广播适合join场景自定义适合groupby场景rebalancerebalance 将数据发往下游所有并行度rescale自定义分区器 //自定义分区器 泛型是key 返回值是分区号 source.partitionCustom(new Partitioner<String>() { @Override .原创 2022-03-13 04:55:54 · 426 阅读 · 0 评论 -
【Flink】反压原理和 内存管理
Spark Executor能跑多少个Task,由Core个数决定反压原理反压是指任务(Task)之间的现象;Task是线程,运行Task的是TaskManager进程,每个TaskManager中可以跑的Task数量是不确定的,1个Slot中可以跑1-n个Task;Flink网络传输下的内存管理:1.根据配置,Flink会在NetWorkBufferPool中生成一定数量(default 2048)个内存块MemorySegment,内存块的数量代表网络传输中所有可用的内存。NetWork.原创 2022-03-12 13:53:39 · 1917 阅读 · 0 评论 -
【Flink 调优】【第一章】【资源配置调优】
资源配置调优1. 内存设置1.1 TaskManager内存模型1.2 生产资源配置2. CPU资源的合理使用2.1 使用DefaultResourceCalculator策略2.2 使用DominantResourceCalculator策略2.3 使用DominantResourceCalculator策略并指定core个数总结3. 并行度设置3.1 全局并行度计算案例3.2 Source端并行度配置3.3 Transform端并行度配置3.4 Sink端并行度配置1. 内存设置1.1 Tas原创 2022-02-15 23:53:03 · 2446 阅读 · 0 评论 -
【Flink SQL】【第四章 时间属性】
本章内容对应官网:https://nightlies.apache.org/flink/flink-docs-release-1.12/dev/table/streaming/time_attributes.html1.时间属性介绍Time attributes can be part of every table schema.They are defined when creating a table from a CREATE TABLE DDL or a DataStream.Once原创 2022-01-27 20:21:40 · 1765 阅读 · 0 评论 -
【Flink】【第9章】【 状态管理和容错机制】【03】程序恢复 和 SavePoint
什么叫容错机制?容错的含义:Flink程序挂了,重启故障恢复到挂掉之前的状态;从当前系统的状态存盘,用于Flink故障恢复容错机制的核心: 应用程序的状态的一致性检查点1.一致性检查点(Checkpoints)Flink想要做到精准一致性,就需要用到一致性检查点;一致性检查点就是checkpoint一致性检查点是flink程序故障恢复机制的核心;一致性检查点就是在某一个时间点,flink程序中所有并行度中状态的一份快照;通过将算子中的状态进行持久化,用于flink程序故障重启仍然能够无缝原创 2022-01-21 18:03:11 · 2027 阅读 · 0 评论 -
【Flink】【第9章】【 状态管理和容错机制】【02】CheckPoint和 状态后端
状态管理状态后端1.状态的存储1.MemoryStateBackend2.FsStateBackend3.RocksDBBackend4.配置方式4.1 全局配置4.2 单任务配置2.状态的备份(checkpoint 和 savepoint)4.3 状态一致性4.3.1 flink状态的一致性级别4.3.2 端到端(end-to-end)状态一致性**1.Sink端幂等写入****2.Sink端事务写入**2.1 预写日志2.2 两阶段提交5.Flink + Kafka实现端到端的一致性状态后端1.状态原创 2022-03-08 02:19:22 · 2226 阅读 · 0 评论 -
【Flink】【第9章】【 状态管理和容错机制】【01】状态编程
1.状态编程介绍1.1 有状态计算和无状态计算流式计算分为无状态和有状态两种情况:(1)无状态的计算基于每个独立事件给出每个事件的结果例如,流处理应用程序从传感器接收温度读数,并在温度超过90度时发出警告。(2)有状态的计算则会基于多个事件输出结果1.所有类型的窗口。例如,计算过去一小时的平均温度,就是有状态的计算。2.所有用于复杂事件处理的状态机。例如,若在一分钟内收到两个相差20度以上的温度读数,则发出警告,这是有状态的计算。3.流与流之间的所有关联操作、流与静态表、动态表之间的关联原创 2022-01-21 09:31:27 · 2051 阅读 · 0 评论 -
【Flink】【第八章】 ProcessFunctionAPI
1.ProcessFunction介绍1.1 API上的说明A function that processes elements of a stream.For every element in the input stream processElement(Object, ProcessFunction.Context, Collector) is invoked. This can produce zero or more elements as output. Implementa原创 2022-01-20 22:38:51 · 863 阅读 · 0 评论 -
【Flink】【第七章 】时间语义 & WaterMark
时间语义 & WaterMark一、Flink中的时间语义1. 三种时间语义2.时间语义的使用3.事件时间的功能Watermark1. 数据乱序2. waterMark的提出3. waterMark生成规则4. WaterMark的特点5. waterMark的作用6. waterMark生成演示7. 如何在代码中引入waterMark8. waterMark分配器(1)周期性watermark戳提取器(1.1)有序时间戳提取器(1.2) 乱序提取器(2)断点式watermark戳提取器9. 乱序数原创 2022-01-15 23:18:36 · 898 阅读 · 3 评论 -
【Flink】【第六章 Window】
Window概述Streaming流式计算是一种被设计用于处理无限数据集的数据处理引擎,而无限数据集是指一种不断增长的本质上无限的数据集,而window是一种切割无限数据为有限块进行处理的手段。Window是无限数据流处理的核心,Window将一个无限的stream拆分成有限大小的”buckets”桶,我们可以在这些桶上做计算操作。flink中的window可以理解为水桶,数据理解为水流,水流源源不断,对于DataStream来说是来一个数据处理一条,有了桶之后,将数据装进桶中再处理,在窗口关闭的时候原创 2022-01-14 00:18:14 · 879 阅读 · 0 评论 -
【Flink】【第五章 流处理API】Flink支持的数据类型
flink支持的数据类型Flink流应用程序处理的是以数据对象表示的事件流。所以在Flink内部,我们需要能够处理这些对象,它们需要被序列化和反序列化,以便通过网络传送它们,或者从状态后端、检查点和保存点读取它们。为了有效地做到这一点,Flink需要明确知道应用程序所处理的数据类型。Flink使用类型信息的概念来表示数据类型,并为每个数据类型生成特定的序列化器、反序列化器和比较器。Flink还具有一个类型提取系统,该系统分析函数的输入和返回类型,以自动获取类型信息,从而获得序列化器和反序列化器。但是原创 2022-01-12 22:56:54 · 170 阅读 · 0 评论 -
【Flink】【第五章 流处理API】传输算子
broadcastKeyByShuffleRebalanceforwardrescalaglobal自定义分区方式原创 2022-01-13 01:51:09 · 470 阅读 · 0 评论 -
【Flink】【第五章 流处理API】Function接口 & RichFunction
实现UDF函数——更细粒度的控制流函数类(Function Classes)我们可以先分清一下概念:算子:将flink中的addSource、Transform算子、addSink都为算子函数:算子中的参数;也就是各种各样的Function就是函数,这些函数基本上都是接口,也有抽象类;函数类的调用是针对DataStream中的每一个数据的,也就是每个元素都要调用一下。Flink暴露了所有udf函数的接口(实现方式为接口或者抽象类)。例如MapFunction, FilterFunctio原创 2022-01-13 01:30:27 · 1772 阅读 · 1 评论 -
【Flink】【第五章 流处理API】Tramsform算子
KeyByKeyBy算子是定义传输过程(Hash分区)而不处理数据本身;所有定义传输过程的算子是不能设置并行度的。keyBy对元组可以用下标DataStream → KeyedStream:输入时DataStream,输出时KeyedStreamkeyBy算子返回值是KeyedStream<T,Key>,泛型中,key在后面,元素在前面逻辑地将一个流拆分成不相交的分区,每个分区包含具有相同key的元素,根据key的hash值 % 并行度 决定数据流向哪个并行度(分区)注意:ke原创 2022-01-12 22:45:17 · 443 阅读 · 0 评论 -
【Flink】【第五章 流处理API】Source 和 Sink
Source输入Controlling Latency(控制延迟)Source传输控制策略_29集默认情况下,流中的元素不会一个一个的在网络中传输,而是缓存起来,这样可以减少连接的次数,提高效率;缓存的大小可以在Flink的配置文件、ExecutionEnvironment、或者某个算子上进行配置;输入控制延迟默认为100ms输入延迟的好处:提高吞吐量输入延迟的缺点:增加了延迟如何把握平衡?如果是为了最大吞吐量,则可以设置setBufferTimeout(-1),移除timeout原创 2022-01-19 10:49:56 · 884 阅读 · 0 评论 -
【Flink】【第五章 流处理API】构建Flink程序执行环境
EnvironmentgetExecutionEnvironment创建一个执行环境,表示当前执行程序的上下文。如果程序是独立调用的,则此方法返回本地执行环境;如果将程序打包,从命令行客户端调用程序以提交到集群,则此方法返回此集群的执行环境也就是说,getExecutionEnvironment会根据查询运行的方式决定返回什么样的运行环境,是最常用的一种创建执行环境的方式。//todo 1. 创建批处理环境ExecutionEnvironment env = ExecutionEnvir.原创 2022-01-12 14:43:01 · 179 阅读 · 0 评论 -
【Flink】【第四章 Flink理论部分】 任务提交 & 任务调度
任务提交流程Yarn Per Job 模式PerJob模式下,job是直接提交给Yarn ResourceManager的 ;Session模式下,Job提交给JobManager,因为Yarn-session启动后,JobManager就已经申请好了具体流程:1.flink任务提交后,Client向HDFS上传Flink的Jar包和配置其他TaskManager节点也需要这些资源,从HDFS上获取,免分发;任务提交后,本地的jar包删除不影响job的运行2.向Yarn Resourc原创 2022-01-11 22:39:29 · 497 阅读 · 0 评论 -
【Flink】【第四章】 运行时的相关概念
概念有点多,有点乱,还待整理1.slotTaskManager是实际干活的进程,是一个JVM进程实例;为了控制一个TaskManager能接收多少个task, TaskManager通过task slot来进行控制(一个worker至少有一个task slot)。每个task slot表示TaskManager拥有资源的一个固定大小的子集。假如一个TaskManager有三个slot,那么它会将其管理的内存分成三份给各个slot。资源slot化意味着一个subtask将不需要跟来自原创 2022-01-12 14:41:45 · 422 阅读 · 0 评论 -
【Flink】【第四章 Flink理论部分】Flink运行时架构
Flink运行时架构主要包括四个不同的组件,它们会在运行流处理应用程序时协同工作:作业管理器(JobManager,管理job的执行,一个job一个jobManager)任务管理器(TaskManager)资源管理器(ResourceManager,flink集群自己的,不要和yarn的RM混淆;用于申请资源,如果flink部署在yarn上,会向yarn的RM申请资源,standalone模式下自己分配资源)4) 分发器(Dispatcher,当job提交的时候,用于给job分配jobManag.原创 2022-01-11 22:15:50 · 363 阅读 · 0 评论 -
【Flink】【第三章 Flink运行模式】 Flink on Yarn
Yarn模式在yarn模式下,启动flink集群之前要启动yarn和hadoop以Yarn模式部署Flink任务时,要求Flink有Hadoop支持的版本。Flink1.10要求Hadoop环境需要保证版本在2.2以上,并且集群中安装有HDFS服务。yarn模式,将flink集群部署在yarn集群上,用yarn的ResourceManager负责flink集群的资源调度。1.Flink on Yarn的两种模式说明Flink on yarn有两种运行模式:Session-Cluster和Per原创 2022-01-11 01:28:39 · 3537 阅读 · 0 评论 -
【Flink】【第二章 安装部署】Flink集群安装部署
Flink安装部署1.安装2.flink 目录结构3.flink/conf/flink-conf.yaml 配置文件**1.Jobmanager的相关配置****2.Taskmanager的相关配置****3.Jobmanager高可用配置****4. 容错和检查点****5.Web访问端口:8081**1.安装解压缩 flink-1.10.1-bin-scala_2.12.tgz,进入conf目录中。1)修改 flink/conf/flink-conf.yaml 文件:jobmanager.rp原创 2022-01-10 23:55:45 · 1081 阅读 · 0 评论 -
【Flink】【第一章】Flink简介
P3 哪些行业需要处理流数据P4 流处理发展演变(1)事务处理(OLTP)事务处理,实时性好,但是不适用于高并发,数据量大的场景;(2)OLAP离线分析适用于数据量大,但是实时性差(3)OLAP 联机分析处理分布式处理的问题:数据乱序(4)Lambda架构实现一个需求,需要维护两套系统;(5)flink实现流批一体flink特点1.事件驱动事件驱动型应用是一类具有状态的应用,它从一个或多个事件流提取数据,并根据到来的事件触发计算、状态更新或其他外部动作。比较典原创 2022-01-09 19:07:07 · 377 阅读 · 0 评论