问题1:大佬们,请教个Flink问题,使用flink cep模式,然后开了个全天的窗口进行统计,任务卡在cepoperator环节,数据越积越多。有啥调优方式吗?
问题2:除了调高并行度,有其他方式吗?我现在是用docker容器跑的,估计能给的并行度也不高?并行度可能是我最后没办法的情况下需要考虑的方式了
Flink CEP模式使用全天窗口统计时积累数据过多可能的原因和解决方案:
窗口过大,会造成大量历史数据的积累。可以缩小窗口大小,如4小时或1小时窗口。
事件型匹配规则定义不合理,导致难以及时匹配弹出。检查规则是否太宽松、条件设置是否严格。
CEP Operator内存不足,可以增加Operator并行度来分摊内存压力。
中间结果状态存储不及时,增加状态清理周期降低延迟。
事件数据输入速度过快,设置速率限制Buffer slower streams。
下游处理不能及时消费,增加下游算子并行度提高处理能力。
复杂匹配逻辑导致性能下降。简化匹配逻辑降低复杂度。
使用内存状态而非checkpoint持久化状态。
一般来说,可以从窗口大小、规则复杂度、资源压力几个方面进行优化:
缩小窗口大小
简化规则
增加并行度
加强下游处理能力
限流缓冲
使用内存持久化状态
回答1:并行度网上调,你现在就给了1
回答2:那你只能看看你代码里有没有用写占用比较大的东西了,在可容忍的情况下 并行度是最简单的办法。不加资源 就优化代码,此回答整理自钉群“【③群】Apache Flink China社区”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。