[ Flink基础 ]
[ (思维导图) ] (23857)
-隐藏-
应用场景特点: ...
+展开+
根据用户使用API编写的代码生成的初始 ...
一个特定算子的子任务数量。默认并行度: ...
+展开+
算子设置 > 全局设置 > 集群默认设置 ...
+展开+
算子链由两个或多个连续的 Operat ...
+展开+
+展开+
根据用户使用Stream API编写的 ...
StreamGraph经过优化后生成的 ...
JobManager根据JobGrap ...
在TaskManager上部署Task ...
一个TaskManager是一个JVM ...
每个Worker(TaskManage ...
TaskManager对每个任务运行所 ...
+展开+
Flink默认允许slot共享,如果希 ...
slot指一个taskmanager的 ...
Flink允许子任务共享slot,即使 ...
默认配置为计算机的CPU核心数,也可以 ...
Job的最大并行度除以每个TaskMa ...
+展开+
+展开+
用户开发的应用程序。负责将程序代码解析 ...
负责接收来着Client(Flink ...
+展开+
负责资源的管理,在整个 Flink 集 ...
负责接收用户提供的作业,并且负责为这个 ...
JobMaster负责管理单个JobG ...
负责按照Executor Graph的 ...
+展开+
+展开+
配置 taskmanager.memo ...
配置 jobmanager.memor ...
+展开+
配置 taskmanager.memo ...
Flink总内存 JobManager ...
+展开+
Flink框架,即TaskManage ...
Task Heap - Task执行用 ...
配置 jobmanager.memor ...
+展开+
+展开+
由 Flink 管理的用于排序、哈希表 ...
+展开+
用于 Flink 框架的堆外内存(直接 ...
用于 Flink 应用的算子及用户代码 ...
网络数据交换所用堆外内存大小,如网络数 ...
配置 jobmanager.memor ...
+展开+
Flink JVM 进程的 Metas ...
jobmanager.memory.j ...
它是为JVM进程预留的其它本地内存,用 ...
+展开+
用于其他 JVM 开销的本地内存,例如 ...
用于其他 JVM 开销的本地内存,例如 ...
关键在于是否计入slot资源:Task ...
+展开+
+展开+
高级API,High-level La ...
高级API,Declarative D ...
核心API,Core APIs
低级API,Stateful Stre ...
+展开+
+展开+
env.getExecuteEnvir ...
+展开+
env.execute();
目的是为了在分布式环境中让每一个Tas ...
配置项:jobmanager.exec ...
如果没有启用 checkpointin ...
+展开+
+展开+
+展开+
+展开+
+展开+
+展开+
+展开+
+展开+
+展开+
keyBy算子
分布式计算就是把一个作业切分成子任务 ...
+展开+
ShufflePartitioner, ...
RebalancePartitione ...
RescalePartitioner, ...
BroadcastPartitione ...
GlobalPartitioner,数 ...
CustomPartitionerWr ...
KeyGroupStreamParti ...
ForwardPartitioner, ...
简单理解:分区:算子的一个并行实例可以 ...
+展开+
keyBy()首先要经过一个“逻辑分区 ...
可以控制从键计算出来的操作符索引,但是 ...
+展开+
+展开+
1、classloader.check ...
异常信息1:java.lang.Ill ...
+展开+
区别:单作业模式是通过客户端来提交的, ...
+展开+
由Client提交,做一些预备工作。但 ...
可以理解为 Client 模式的App ...
Flink提交的程序,被当做集群内部A ...
+展开+
Flink以单机模式运行,无需启动分布 ...
Flink作为一个独立的集群运行,需要 ...
Flink在YARN之上运行,Flin ...
+展开+
命令模式:./flink [OPTI ...
+展开+
Usage: Optional ...
+展开+
+展开+
+展开+
事件时间指的是数据流中每个元素或者每个 ...
事件处理事件指算子使用当前机器的系统时 ...
摄入时间指的是事件到达Flink So ...
基于事件时间提出的概念,自定义的逻辑时 ...
+展开+
水位线是专门用来解决流式环境中数据迟到 ...
watermark = 进入 Flin ...
+展开+
+展开+
从数据流中的事件数据的某个字段中提取时 ...
按照既定的方式,基于时间戳生成水位线。 ...
+展开+
为每个到来的事件数据调用该方法。
周期性调用的方法,默认200ms,可以 ...
+展开+
实现类:TimestampAssign ...
+展开+
+展开+
+展开+
窗口的生命周期:指创建和销毁窗口。窗口 ...
+展开+
+展开+
+展开+
+展开+
+展开+
DS (keyBy)-> KS , D ...
AWS (reduce,aggrega ...
KS (sum,max,min,red ...
WS (reduce,aggrete, ...
+展开+
+展开+
+展开+
+展开+
stream.keyBy(...).w ...
OutputTag outputTag ...
+展开+
概述: &nbs ...
+展开+
+展开+
DataStream 是 Flink ...
KeyedStream根据指定的key ...
WindowedStream是根据ke ...
在普通流上进行窗口操作时,需要用到 A ...
JoinedStreams 基于 Wi ...
co-group 侧重的是分组(gro ...
ConnectedStreams 只能 ...
用于动态读取经常修改的配置信息使用键值 ...
+展开+
+展开+
通常使用处理函数 Process Fu ...
需要多次filter才能实现分流,即需 ...
将不同类型的数据进行标记,最后返回Sp ...
+展开+
并之后的新流会包括所有流中的元素,数据 ...
+展开+
两条流在形式上“统一”,放在同一个流中 ...
合并DataStream流和Broad ...
+展开+
处理流程,两条流的数据到来之后,首先会 ...
间隔联结具体的定义方式是,给定两个时间 ...
用法跟 window join 非常类 ...
概述: &nbs ...
+展开+
+展开+
Java Tuples and Sca ...
Primitive TypesFlin ...
General Class Types ...
+展开+
+展开+
+展开+
+展开+
+展开+
+展开+
+展开+
time-to-live
+展开+
需要创建StateTtlConfig配 ...
涉及到重分区后状态的重组分配。
+展开+
+展开+
子任务以轮询方式round-robin ...
子任务以联合重组方式选择要使用的状态项。 ...
以映射结构map的键值对key-val ...
适用于动态配置/动态规则。
+展开+
状态的存储访问维护,有一个可插拔的组件 ...
+展开+
+展开+
底层是HashMap结构。
底层是key-value存储介质。执行 ...
+展开+
基于内存,不安全。不常用。配置:sta ...
文件系统的状态后端,就是把状态保存在文 ...
把状态保存在RocksDB数据库中。R ...
+展开+
+展开+
检查点就是将flink应用的某个时间点 ...
+展开+
+展开+
检查点恢复流程:首先客户端提供 Che ...
+展开+
+展开+
Flink采用了基于此算法的分布式快照。 ...
由source端在数据流中插入的一个标 ...
专门用来协调处理检查点的相关工作。
+展开+
+展开+
需要广播出去。
执行 分界线对齐 (barrier a ...
+展开+
env.enableCheckpoin ...
env.getCheckpointCo ...
checkpointConfig.se ...
+展开+
轻量级异步屏障快照(ABS)算法:Fl ...
保存点(Savepoint)是基于Fl ...
+展开+
+展开+
一致性就是结果的正确性。
+展开+
+展开+
Flink使用一种轻量级快照机制(检查 ...
即结果的正确性贯穿整个流处理应用的始终 ...
+展开+
+展开+
使用checkpoint进行保证。
可以重置数据的读取位置。
从故障恢复时候,数据不会重复写入外部系统 ...
+展开+
即一个操作被重复执行多次,但是修改的结 ...
应用中一系列的操作,要么全部成功,要么 ...
+展开+
实现代码GenericWriteAhe ...
实现代码TwoPhaseCommitS ...
+展开+
对于每个checkpoint,sink ...
收到checkpoint完成时候,才正 ...
beginTransaction(开启 ...
介绍: Ap ...
+展开+
+展开+
说明:在 Flink 的 Table ...
+展开+
+展开+
+展开+
三部分:catalog名称,数据库名称 ...
描述外部数据,如:文件 hdfs、消息 ...
+展开+
从已经存在的表中创建,视图一般是一个S ...
物化视图就是可以实际存储数据的视图,f ...
通常保持于内存中并且仅在创建它们的fl ...
需要外部catalog来持久化表的元数 ...
可以使用与已存在的永久表相同的标识符去 ...
时态表(Temporal Table) ...
+展开+
功能:注册Catalog和表,直线SQ ...
+展开+
通过连接器connector连接到一个 ...
创建虚拟试图 tableEnv.cre ...
创建输入表,连接外部系统读取数据tab ...
+展开+
tableEnv.sqlQuery(" ...
Table API是嵌入式编程语言中的 ...
注册一个(连接器)表,连接到外部系统, ...
+展开+
tableEnv.toDataStre ...
+展开+
流处理面对的数据是连续不断的,所以流处 ...
+展开+
将一个 Table 转换成 DataS ...
1、将流转换为动态表。2、在动态表上计 ...
动态表随时间而变化,查询动态表需要产生 ...
执行步骤:1、流转换为动态表,2、在此 ...
如果把流看作一张表,那么流中每个数据的 ...
在动态表上执行连续查询,并生成新的动态 ...
+展开+
定义的结果表的更新日志流中,保护了in ...
定义的结果表的更新日志流中,只有ins ...
有些持续查询的计算代价太高,需要受到限 ...
+展开+
将动态表转换为 DataStream ...
+展开+
仅通过插入insert来修改的动态表, ...
+展开+
retract(回撤)流是包含两种类型 ...
+展开+
+展开+
将INSERT 操作编码为 add m ...
将 DELETE 操作编码为 retr ...
将 UPDATE 操作编码为更新(先前 ...
upsert流是一种包含两种消息,up ...
+展开+
+展开+
将 INSERT 和 UPDATE 操 ...
将 DELETE 操作编码为 dele ...
upsert 流对于UPADTE操作引 ...
+展开+
+展开+
+展开+
+展开+
./bin/sql-client.sh ...
set 'execution.runt ...
查看job信息:show jobs;停 ...
+展开+
+展开+
JavaCC 是一个开源的语法分析器生 ...
Calcite使用Java CC对SQ ...
+展开+
+展开+
SQL 解析阶段(SQL–>SqlNo ...
SqlNode 验证(SqlNode– ...
生成逻辑计划阶段。语义分析(SqlNo ...
优化阶段(Logical RelNod ...
+展开+
生成ExecutionPlan,生成物 ...
Physical Plan使用code ...
+展开+
ransformations之后生成J ...
也可以叫做Retraction机制。在 ...
+展开+
+展开+
flink流处理的动态实时表有三种操作 ...
+展开+
一个update消息有两个内容:upd ...
+展开+
+展开+
+展开+
状态TTL:You can provi ...
+展开+
select user, window ...
+展开+
Windowing table-val ...
+展开+
+展开+
window_time = windo ...
+展开+
tumble(table TmpTab ...
hop(table TmpTable, ...
cumulate(table TmpT ...
+展开+
例子:select window_st ...
从1.13版本开始,已经过时。直接把窗 ...
针对某一行的前后的行数开窗来统计计算。 ...
+展开+
+展开+
between ... precedi ...
range between inter ...
rows between 5 prec ...
例子1:select id, et, ...
例子1:select id, et, ...
+展开+
这种方式需要保留两个流的状态,持续性地 ...
+展开+
返回受连接条件限制的简单笛卡尔积。 目 ...
返回合格笛卡尔积中的所有行(即所有通过 ...
返回一个受连接条件和时间约束限制的结果。 ...
+展开+
Temporal table在 Fli ...
+展开+
时态联接接受任意一个表(左侧输入) , ...
使用处理时间属性,join 将始终返回 ...
使用时态表函数连接表的语法与使用表函数 ...
A lookup join is ty ...
和标准SQL的概念一致,主要用来管理数 ...
概述: &nbs ...
+展开+
概述: &nbs ...
+展开+
概述: &nbs ...
+展开+
概述: &nbs ...
+展开+
概述: &nbs ...
概述: &nbs ...
+展开+
介绍: Modules allo ...
+展开+
+展开+
CoreModule contains ...
The HiveModule prov ...
Users can develop c ...
介绍:https://nightlie ...
+展开+
+展开+
upsert kafka
Bounded and Unbound ...
+展开+
+展开+
+展开+
+展开+
一般上1个CPU配置4G内存
+展开+
bin/flink run -t y ...
+展开+
进行压测,并行度10个以下,公式:总Q ...
如果source是kafka,并行度设 ...
一对一算子并行度可以和source端一 ...
根据sink端的数据量以及下游服务的抗 ...
RocksDB是基于LSM Tree实 ...
Checkpoint的时间间隔可以设置 ...
+展开+
开启checkpoint,时间间隔3分 ...
配置checkpoint数据一致性:c ...
最小时间间隔4分钟:checkpoin ...
超时时间10分钟:checkpoint ...
+展开+
反压指在短时间内的负载高峰导致系统接收 ...
+展开+
Flink通过对运行中的任务进行采样来 ...
+展开+
排查时候先把operator chai ...
Metrics 指标:outPoolU ...
+展开+
+展开+
通过Flink Web UI观察每个子 ...
+展开+
使用重分区操作:shuffle、reb ...
使用预聚合的方式比较好,普通算子:定时 ...
使用map端key+随机数,进行key ...
+展开+
指Flink在运行过程中,动态发现to ...
用处不是很大
指topic的一个分区在一段时间内没有 ...
+展开+
默认消费策略,读取上次保存的offse ...
从最早的数据开始消费
从最新的数据开发消费
从指定位置开始消费
从指定的时间点开始消费
+展开+
可以设置空闲状态的最小保留时间,TTL ...
+展开+
设置空闲状态的超时时间1小时。 tab ...
配置项: table.exec.so ...
minibatch微批处理指的是缓存一 ...
+展开+
+展开+
获取表环境tEnv的参数配置对象:Co ...
开启 minibatch:config ...
批量输出时间间隔代码:configur ...
为防止oom,设置每个批次最多缓存数据 ...
LocalGloabl指将原来的Agg ...
+展开+
开启 LocalGloabl 优化: ...
count distinct在loca ...
+展开+
开启split distinct,默认 ...
split distinct优化在第一 ...
在某些场景下,从多个维度统计UV,会使 ...
flink优化器尝试找出重复的子计划并 ...
+展开+
+展开+
需要两个条件:输入流有Primary ...
生产环境不建议使用。如果有Primar ...
当Primary Key维度比较大时候 ...
分区加上日期字段,防止结果由于Stat ...
保留第一条记录或者最后一条记录。
+展开+
row_number() over(p ...
row_number() over(p ...
+展开+
+展开+
指定时区:configuration. ...
配置项:table.exec.sour ...
配置项:table.exec.sink ...
配置项:table.exec.reso ...
flink优化器将做谓词下推到flit ...
链接:
|