开发者社区> 问答> 正文

HOP窗口较短导致checkpoint失败怎么办?

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邮件归档

展开
收起
彗星halation 2021-12-02 16:49:55 505 0
1 条回答
写回答
取消 提交回答
  • 24 小时且步长 1 分钟的 window 会由于数据不断累积而导致 cp 越来越大,越来越慢,最终超时。当然如果运算太慢导致 cp 被 back

    pressure 也有可能导致 cp 超时。开启 mini batch 可以加快 window 的运算速度,但这么长时间而且这么频繁的 window

    目前确实没有什么很好的优化方法,仍然建议扩大并发以分担计算以及 cp 的压力。*来自志愿者整理的FLINK邮件归档

    2021-12-02 17:02:19
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载