Flink遇到数据倾斜导致的积压怎么解决?

提问者:帅平 问题分类:大数据
Flink遇到数据倾斜导致的积压怎么解决?
5 个回答
帅的很低调
帅的很低调
查看下是否是chekpoint的问题,Flink⽀持三种Checkpoint⽅式,Memory、File System、RocksDB,一般使用File System和 RocksDB较多。如果由于CK慢⽽导致数据积压,可以当对作业资源进⾏调整,为了避免CK时间过⻓⼀直处于超时失败的情况,可以延⻓CK超时时间,保证作业能够成功完成CK,不会导致作业从历史状态恢复,加重积压问题。如果CK成功,但状态量过⼤也可考虑扩⼤并发,分摊压⼒。 
发布于:4小时前 IP属地:四川省
走过的路
走过的路
查看下是否是数据处理过慢导致的积压,如果积压问题是由节点数据处理过慢引起的,⼀般有以下⼏种情况:用户代码效率过低、频繁GC、机器问题等。 对于用户代码效率问题,可以通过Flink WebUI界⾯TaskManager的Thread Dump查看是否存在线程阻塞,如对外部存储系统进⾏读写操作较慢。 a. 对于作业频繁GC问题,⼀般由于作业内存配置不合理导致,建议扩⼤内存配置,或者扩⼤并发。
发布于:4小时前 IP属地:四川省
绿水长流
绿水长流
查看下是否是join导致的数据倾斜,当hash的上游是⼀个join操作,可能由于数据 join不成功产⽣了很多null 数据,⽽该字段为下游keyby指定的key,也可能会导致数据倾斜,可以对join之后的数据进⾏过滤处理。
发布于:4小时前 IP属地:四川省
旧梦难醒
旧梦难醒
查看下是否存在热点数据,对于热点数据的情况,会导致经过keyby操作后,部分key所对应的数据量过⼤,因此可以对业务数据进行打散或者先进行预聚合等操作。 
发布于:4小时前 IP属地:四川省
浅笑嫣然待花开
浅笑嫣然待花开
查看下并发设置是否合理,对于并发度的配置,⼀般建议⼤家配置为2的n次⽅,可以避免因为并发度配置不合理⽽导致hash不均匀问题。简要介绍下keyby的计算原理,这⾥涉及 keyGroupId, parallelism, maxParallelism三个参数,可以看到keyGroupId是hash均匀的,并且位于[0, maxParallelism - 1],maxParallelism则是⼤于1.5 倍parallelism最⼩的2的幂。由于maxParallelism为2的幂,因此为了保证数据能够均匀keyby到各个分区,需要设置parallelism也为2的幂。
发布于:4小时前 IP属地:四川省
我来回答