知识源于积累,登峰造极源于自律
Flink具体如何保证exactly-once呢? 它使用一种被称为”检查点”(checkpoint)的特性,在出现故障时将系统重置回正确状态。下面通过简单的类比来解释检查点的作用。
假设你和两位朋友正在数项链上有多少颗珠子,如下图所示。你捏住珠子,边数边拨,每拨过一颗珠子就给总数加一。你的朋友也这样数他们手中的珠子。当你分神忘记数到哪里时,怎么办呢? 如果项链上有很多珠子,你显然不想从头再数一遍,尤其是当三人的速度不一样却又试图合作的时候,更是如此(比如想记录前一分钟三人一共数了多少颗珠子,回想一下一分钟滚动窗口)。
more >> 在我们的Flink中,他默认就是有状态的.他和spark的一个本质的区别.有状态,但是他的状态是如何分布的呢?
状态分为两类: 算子状态(operator state)和键控状态(keyed state)
算子状态:
是由Flink每一个子任务自己把任务运行过程中的一些业务或者逻辑或者数据,由自己来保存的或者说由自己来管理的,这样的状态称为算子状态.
所以算子状态的作用范围是限定为当前的算子任务的.
什么叫算子任务啊?
more >>ProcessFunction API是属于Flink三层API中最底层的一层API.最底层的API意味着什么呢?
顾名思义就是我们可以做任何你想要做的任何事情.你可以理解为底层的API我们想要处理一些细腻化的操作,或者要处理一些特殊的业务.我如果使用高级的API ,DataStream API已经搞定不了的情况下.最后呢,我们就可以是用ProcessFunction API. ProcessFunction API是属于我们Flink里面最底层的转换算子.在这个最底层的转换算子中.我们可以有很多的工作可以做.或者有很多的功能可以完成.可以访问时间戳.那我们访问的时间戳是什么时间戳呢?是处理的时间戳.也可以是当前进来的那条数据的时间戳.那么当前进来的时间戳和处理的时间戳我们不是可以使用system.currenttimemillis()吗?但是这个时候我们使用这个是不准确的.你要想访问准确的时间的话.我们就可以使用底层的API.他就给我们提供了一个方法.我们可以访问watermark,还可以查看当前的水位线.水位线实际上是这样的,就是他每个两百毫秒调用一次.是需要更新这个水位线的.因为水位线有两种.
一种是周期性的水位线.
还有一种是间断性的水位线.
周期性的水位线就是说我每隔多长时间来更新一下或者设置一下这个新的水位线.就是这个意思.那么当前最新的水位线是多少我们都可以通过在底层API中去拿到.甚至我们还可以注册定时的事件.
什么叫注册定时的事件呢?
比如说:我们到达某一个条件之后我想触发一个事件.触发一个新的事件.这个事件我规定你在三秒钟之后你给我执行.那么在三秒钟还没到的时候我就有必要把这个事件注册一下.注册之后,从现在开始到三秒钟之后他会自动触发.所以你可以理解为定义,我们定义一个马上过一段时间要触发的一个事件.
还可以输出一个特定的一些事件.比如说超时的一些事件.什么意思呢?比如说我们现在正在处理数据.假设处理数据的时候我们发现可能某一个条件还没成熟.那么没关系,我们可以在几秒钟之后设置一个超时时间.在几秒钟之后我们再进行处理.这就是所谓的超时时间.
实际上几秒钟之后再处理的话,也是需要注册一个定时事件的.因为你要注册一个处理的时间,多长时间之后再进行处理.这些都是原来我们的API所无法做到的.那我们就可以通过ProcessFunction API这个底层的API来进行处理.
more >>用到了时间语义和watermark,所以Flink和sparkStreaming是有一定的区别的.
Flink中的时间语义有三种:
1 | Event Time(事件触发的时间或者是事件创建的时间), |
Flink程序的执行具有并行、分布式的特性。
在执行过程中,一个流(stream)包含一个或多个分区(stream partition),而每一个算子(operator)可以包含一个或多个子任务(operator subtask),这些子任务在不同的线程、不同的物理机或不同的容器中彼此互不依赖地执行。
一个特定算子的子任务(subtask)的个数被称之为其并行度(parallelism)。一般情况下,一个流程序的并行度,可以认为就是其所有算子中最大的并行度。一个程序中,不同的算子可能具有不同的并行度。
streamEnv.setParallelism(1)//加在ENV上表示默认所有的算子平行度都是1
more >>
标签列表:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia-plus根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true
2022-03-29
2022-03-29
#html+css
2022-03-29
#html+css
2022-03-29
#html+css
2022-03-29
#html+css
2022-03-25
#工具
2022-03-23
#工具
2022-03-23
#工具
2022-03-23
#数仓建模
2022-03-16
#hive#pgsql#Hologres
2022-03-10
#spark#SparkStreaming
2022-03-10
#spark
2022-03-09
#flink
2022-02-28
#hive
2022-02-28
#hive
2022-02-20
#Flink
2022-02-19
#Flink
2022-02-19
#Flink
2022-02-19
#Flink
2022-02-19
#Flink
2022-02-19
#Flink
2022-02-17
#Flink
2022-02-17
#Flink
2022-02-17
#Flink
2022-02-17
#Flink
2022-02-17
#Kafka
2022-02-16
#Flink#clickhouse
2022-02-16
#clickhouse
2022-02-16
#clickhouse
2022-02-16
#clickhouse
2022-02-16
#clickhouse
2022-02-16
#shell
2022-02-16
#数据仓库
2022-02-16
#数据仓库
2022-02-15
#Flink
2022-02-15
#轻松一刻
2022-02-15
#spark#spark SQL
2022-02-15
#spark#spark SQL
2022-02-15
#Kafka
2022-02-15
#Kafka
2022-02-15
#Kafka
2022-02-15
#Flink
2022-02-15
#Flink
2022-02-15
#Flink
2022-02-14
#Flink
2022-02-14
#Flink
2022-02-14
#Flink
2022-02-14
#Flink
2022-02-14
#Flink
2022-02-14
#Flink
2022-02-14
#Flink
2022-02-14
#Flink
2022-02-14
#Flink
2022-02-14
#Flink
2022-02-14
#Flink
2022-02-14
#Flink
2022-02-14
#Flink
2022-02-12
#hadoop#yarn
2022-02-11
#Flink
2022-02-11
#Flink
2022-02-11
#Flink
2022-02-11
#Flink
2022-02-11
#Flink
2022-02-11
#Flink
2022-02-10
#Flink
2022-02-10
#Flink
2022-02-10
#kafka
2022-02-10
#hadoop#机架感知
2022-02-10
#Flink
2022-02-07
#Flink
2022-02-07
#Java#Mybatis
2022-02-07
#Java#Mybatis
2022-02-07
#Java#Mybatis
2022-02-07
#Flink
2022-01-31
#动态
2022-01-31
#Flink
2022-01-28
#轻松一刻
2022-01-28
#动态
2022-01-22
#streamx
2022-01-22
#streamx
2022-01-20
#Flink
2022-01-19
#Flink
2022-01-19
#spark
2022-01-19
#spark
2022-01-19
#spark
2022-01-18
#hive
2022-01-18
#hive
2022-01-18
#hive
2022-01-18
#zookeeper
2022-01-18
#动态
2022-01-17
#Hadoop#Hadoop企业级优化
2022-01-16
#Hadoop#Hadoop企业级优化
2022-01-16
#Hadoop#Yarn
2022-01-16
#Hadoop#hadoop压缩
2022-01-16
#Hadoop#hadoop计数器应用#hadoop数据清洗
2022-01-15
#Hadoop#mapJoin#ReduceJoin
2022-01-14
#Hadoop#mapreduce#InputFormat
2022-01-14
#Hadoop#MapReduce#MapTask
2022-01-14
2022-01-14
#纪念册
2022-01-14
#Hadoop#Yarn#Yarn HA
2022-01-14
#Hadoop#HDFS#HDFS HA
2022-01-13
2022-01-13
2022-01-12
#Hadoop#mapreduce#shuffle
2022-01-12
#MapReduce#hadoop
2022-01-12
#Hadoop#HDFS#Namenode#DataNode#SecondaryNameNode
2022-01-12
#Hadoop
2022-01-11
#Linux
2022-01-08
#博客目录索引
2021-12-31
#动态