当前位置:网站首页>Flink生产问题(1.10)
Flink生产问题(1.10)
2022-06-27 04:55:00 【今天好好洗头了嘛】
1、TaskManager OOM
发生地点:发生在flink到mysql两阶段提交阶段
原因①由于checkpoint间隔时间有5秒钟,保存的数据量大,以及没有把json数据中的无效数据去除
原因②flink默认内存分配,会把一部分内存分配给托管内存,但是我代码中没有用到rocksDB状态后端,所以不需要这部分内存,需要调整一下参数增大堆内存taskmanager.memory.managed.fraction=0
2、OOM GC时重启TaskManager
由于gc时间长,导致JobManager到TaskManager的心跳断开,此时重启另一个TaskManager,此时就会有启动时间的浪费。需要调整一下参数增加心跳延迟时间heartbeat.timeout=300000
3、通信问题
由于资源过少,导致jvm未能及时响应,影响到TM和JM的通信,此时需要调整一下超时时间akka.ask.timeout=500 s web.timeout=500000
4、业务问题
目前的业务场景:
一、
①上游kafka有多个partition,每个partition中的数据是通过canal监控mysql的binlog日志得来的,并且数据是以表的hash值进行分配到不同partition中的。所以每一个表的变更数据一定是在某个kafka的partition中是有序的。
②此时我们的需求是,有序的把每个表的增量数据同步到下游mysql(下游mysql表中会多三个字段,canal的id,数据的es,数据的类型),比如,如果是insert操作,则下游mysql也执行一次upsert操作,此时保存的数据为上游json数据中的data数据,此时类型为insert;如果是update操作,则下游mysql也执行一次upsert操作,此时保存的数据为上游json数据中的data数据,类型为update;如果是delete操作,则下游mysql也执行一次upsert操作,此时保存的数据为上游json数据中的old数据,类型为delete;
如果有上游有ddl变更,则下游也执行一次ddl变更。
③从上述场景得出,我们必须需要顺序的去消费每个表的变更数据,但是这样就会导致一个问题,subtask分配数据不均匀,因为有的表变更消息多,有的表变更消息少,所以通过表的hash值分配到不同partition中的数据会不一样,导致flink消费时,每个并行度的数据也不均匀。
④如果上游没有ddl变更消息,我们可以通过表名+主键对数据进行keyby,尽量使得数据更分散一些。
⑤思考:现在的业务场景,因为有ddl变更,我们如何把每个subtask的数据更加均匀一些?
d->c->ddl->b->a
把ddl之前数据进行keyby
把ddl之后数据进行keyby
相当于一批一批的处理,
先根据表名keyby,在每个窗口攒一批数据,然后判断这批数据里有没有ddl,有的话根据ddl划分成多个部分,没有的话就是一个整体。。。。。。?
二、
目标下游表有唯一索引
边栏推荐
- 013 C语言基础:C指针
- Laptop does not have WiFi option solution
- 011 C语言基础:C作用域规则
- 微服务系统设计——统一鉴权服务设计
- math_ Number set (number set symbol) and set theory
- leetcode-20. Valid parentheses -js version
- Advanced Mathematics (Seventh Edition) Tongji University exercises 1-10 personal solutions
- [station B up dr_can learning notes] Kalman filter 2
- 高等数学(第七版)同济大学 习题1-10 个人解答
- 微服务系统设计——API 网关服务设计
猜你喜欢

nignx配置单ip限流

Penetration test - directory traversal vulnerability

渗透测试-文件上传/下载/包含

关于元器件封装的一些文章和一下我的体会

math_ Number set (number set symbol) and set theory

Microservice system design -- message caching service design

【C语言】关键字的补充

es6 0622三

基于MobileNet-Yolov4搭建轻量化目标检测
![[station B up dr_can learning notes] Kalman filter 3](/img/40/d3ec97be2f29b76a6c049c26ff4998.gif)
[station B up dr_can learning notes] Kalman filter 3
随机推荐
RTP 发送PS流工具(已经开源)
Is the truth XX coming? Why are test / development programmers unwilling to work overtime? This is a crazy state
流媒体协议初探(MPEG2-TS、RTSP、RTP、RTCP、SDP、RTMP、HLS、HDS、HSS、MPEG-DASH)
Cultural tourism light show breaks the time and space constraints and shows the charm of night tour in the scenic spot
渗透测试-文件上传/下载/包含
neo4j community与neo4j desktop冲突
018 basics of C language: C file reading and writing
How to systematically learn LabVIEW?
[BJDCTF2020]The mystery of ip
es6 0622三
MySql最详细的下载教程
基于MobileNet-Yolov4搭建轻量化目标检测
Fastdds server records - Translation-
【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习
007 basics of C language: C operator
Qchart note 2: add rollover display
neo4j数据库导出
nignx配置单ip限流
Web3还没实现,Web5乍然惊现!
微服务系统设计——API 网关服务设计