Apache Flink改进批次作业恢复功能,工作进度将不再全部重来

开源串流处理框架Apache Flink发布了1.9.0版本,重要新功能包括改进批次恢复,以及加入新的状态处理器API,而Apache Flink与阿里巴巴贡献的Blink查询引擎集成工作,也从这个版本开始,另外,Flink 1.9还使用最新的Angular稳定版,来重新构建WebUI。

以新版Flink来执行任务失败后的批次工作恢复,用户将会明显感受到时间缩短,在之前的版本,批处理作业的恢复功能,会取消所有任务并重新开始所有工作,而在Flink 1.9中,用户可以配置Flink,限制恢复工作仅限在同一个故障转移区域(Failover Region)进行。故障转移区域是指,由工作管线的数据交换所相连接的一系列任务。

Flink 1.9还加入了一个全新的函数库,可以使用批处理DataSet API读取、写入和修改状态快照(Snapshot),而这代表用户现在可从外部系统,像是外部数据库读取Flink数据,并将其转换成存储点,用于引导Flink工作状态。而存储点中的状态,可以使用任何Flink批次API查询,用户可以分析状态模式或是状态的不一致,以审核或是调试应用程序。

另外,阿里巴巴将内部的Flink项目Blink贡献给Apache Flink之后,Flink项目现在正进行集成Blink查询优化程序(Optimizer)以及Runtime的工作,目前社群正将flink- table模块重构成更小的模块,而这将明确分离Java、Scala API模块,以及优化程序、Runtime模块,让之间有更明确定义的接口。

Flink 1.9现在同时存在两个可插拔的查询处理器,以执行Table API以及SQL叙述,分别为Flink之前版本的处理器以及基于Blink的查询处理器,虽然Blink查询处理器提供更好的SQL支持以及功能,但是由于集成尚未完成,Flink 1.9目前的默认仍然使用旧的处理器,官方也建议在正式生产环境,先不要使用Blink的查询处理器。

经过社群讨论之后,Flink WebUI使用Angular最新的稳定版重新构建,从Angular的版本从1.x大跳跃到了7.x,Flink 1.9默认使用新的WebUI,但是用户想使用旧版本,Flink 1.9中也有提供连接可供切换。