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

Flink基础

Flink
architecture
job manager is master
task managers are workers
task slot is a unit of resource in cluster, number of slot is equal to number of cores(超线程则slot=2*cores), slot=一组内存+一些线程+共享CPU
when starting a cluster,job manager will allocate a certaion number of slots to each taskManager in cluster,
each slots can run one parallel instance of a task or operator
tasks as a basic unit of work execution physically
each task corresponds to a logical reperesentation of data processiong (entire job chain excution )
a subtask represents some operators physically. which is concrete and excutable with other subtasks run in paralle in the same task slot,Flink will process the excution by chaining compatible oeprators if can be chained in same slot to reduce data shuffling
Subtask 是 Flink 作业中 Operator 的并行实例。每个 Operator 都可以拥有一个或多个 subtask,这些 subtask 是并行执行的,运算符子任务(subtask)的数量是该特定运算符的并行度
subtask scheduling
if parallelism is 6, six parallel instances will go across the available task slots.
Flink will process the excution by chaining compatible oeprators if can be chained in same slot to reduce data shuffling
if key by,then all data with same key will be processed in the same slot for accurate state management
**key by group by or window operation need data shuffling(**data movement between nodes)

Image

operator会被chain在同一subtask的情况
(1)手动设置setChainingStrategy(ChainingStrategy.ALWAYS)
.map(x => x * 2)
.filter(x => x > 2)
.setChainingStrategy(ChainingStrategy.ALWAYS)
(2)keyby分区后,相同数据的后续所有操作都在同一个subtask中
keyBy(keySelector).map(…).filter(…) .print();
(3)并行度相同的operators通常可能被chain在一起减少data shuffling
flink Window窗口
在一个无界流中设置起始位置和终止位置,让无界流变成有界流,并且在有界流中进行数据处理,流批转化

  • window窗口在无界流中设置起始位置和终止位置的方式可以有两种 ,基于时间或者基于窗口数据量,
  • 分组和未分组窗口。自定义窗口
  • 时间窗口:
  • 滚动窗口: 数据不重复
  • 滑动窗口:数据有重复
  • 窗口聚合函数:
  • 增量聚合:ReduceFunction、AggregateFunction
  • 全量聚合 ProcessWindowFunction、WindowFunction属于全量窗口函数
http://www.lryc.cn/news/156054.html

相关文章:

  • javaee spring aop 注解实现
  • Qt应用开发(基础篇)——按钮基类 QAbstractButton
  • 2023年最新的 前端面试题(个人总结)
  • 服务器基本故障排查方法
  • docker从零部署jenkins保姆级教程
  • 什么是 MVVM 模式?
  • WebGL Varing变量的作用和内插过程,及执行Varing时涉及的图形装配、光栅化、颜色插值、片元着色器执行机制等详解
  • 赢在起跑线:战略定位咨询带来的核心价值
  • 【链表OJ 11】复制带随机指针的链表
  • Jenkins自动构建(Gitee)
  • nginx离线安装
  • Oracle Merge Into ORA-00001: unique constaint violated问题
  • javaScript:DOM中的CSS操作
  • 2023最新UI工作室官网个人主页源码/背景音乐/随机壁纸/一言
  • 常用命令之mysql命令之show命令
  • iOS接入IJKPlayer遇到的问题汇总
  • 【LeetCode题目详解】第八章 贪心算法 part06 738.单调递增的数字 968.监控二叉树 (day37补)
  • 代码随想录算法训练营Day48 | 198.打家劫舍,213.打家劫舍II,337.打家劫舍III | Day 20 复习
  • Spring Boot @Validated 和Javax的@Valid配合使用
  • 论文复现--lightweight-human-pose-estimation-3d-demo.pytorch(单视角多人3D实时动作捕捉DEMO)
  • 在Windows下设置将EXE开机自启动
  • 反序列化漏洞及漏洞复现
  • 软件工程笔记001
  • java进行系统的限流实现--Guava RateLimiter、简单计数、滑窗计数、信号量、令牌桶
  • 《86盒应用于家居中控》——实现智能家居的灵动掌控
  • 【LeetCode】328. 奇偶链表
  • 数字城市:科技革命下的未来之城
  • Qt鼠标点击事件处理:按Escape键退出程序
  • P1162 填涂颜色
  • Vagrant命令