文章预览
最近做了几个实时数据开发需求,也不可避免地在使用Flink的过程中遇到了一些问题,比如数据倾斜导致的反压、interval join、开窗导致的水位线失效等问题,通过思考并解决这些问题,加深了我对Flink原理与机制的理解,因此将这些开发经验分享出来,希望可以帮助到有需要的同学。 下文会介绍3个case案例,每个case都会划分为背景、原因分析和解决方法三部分来进行介绍。 Case1: 数据倾斜 数据倾斜无论是在离线还是实时中都会遇到,其定义是: 在并行进行数据处理的时候,按照某些key划分的数据显著多余其他部分,分布不均匀,导致大量数据集中分布到一台或者某几台计算节点上,使得该部分的处理速度远低于平均计算速度,成为整个数据集处理的瓶颈,从而影响整体计算性能 。造成数据倾斜的原因有很多种,如group by时的key分布不均匀,空值
………………………………