FLink:1.12.1
源: kafka
create table dev_log (
devid,
ip,
op_ts
) with (
connector = kafka
)
sink: Hbase connect 2.2
目前用flink sql的hop window开发一个指标,统计近24小时的设备关联ip数。设置30min一次checkpoint,超时时间30min。
执行SQL如下
insert into h_table
select
devid as rowkey
row(hop_end, ip_cnt)
from (
select
devid,
hop_end(op_ts, INTERVAL '1' MINUTE, INTERVAL '24' HOUR) as hop_end,
count(distinct(ip)) as ip_cnt
from
dev_logs
group by
hop(op_ts, INTERVAL '1' MINUTE, INTERVAL '24' HOUR),
devid
)
测试中发现任务运行大约3个小时后,就会出现checkpoint失败,任务反复重启。
实际上数据量并不大,测试数据是1s/条输入,一个窗口输出大约只有4000条,成功的checkpoint不超过50M。
修改为10分钟的滑动步长就可以正常执行,但是延迟就比较高了。
请问有什么办法可以排查是哪里出的问题?有什么优化的方法呢*来自志愿者整理的flink邮件归档
24 小时且步长 1 分钟的 window 会由于数据不断累积而导致 cp 越来越大,越来越慢,最终超时。当然如果运算太慢导致 cp 被 back
pressure 也有可能导致 cp 超时。开启 mini batch 可以加快 window 的运算速度,但这么长时间而且这么频繁的 window
目前确实没有什么很好的优化方法,仍然建议扩大并发以分担计算以及 cp 的压力。*来自志愿者整理的FLINK邮件归档
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。