Flink作业高可靠推荐配置指导(异常自动重启)
操作场景
本节操作介绍创建Flink作业时,配置流应用实现高可靠性能的操作方法。
操作步骤
- 用户在消息通知服务(SMN)中提前创建一个“主题”,并将其指定的邮箱或者手机号添加至主题订阅中。此时指定的邮箱或者手机会收到请求订阅的通知,单击链接确认订阅即可。
图1 创建主题
图2 添加订阅
- 登录DLI控制台,创建Flink作业,编写作业SQL后,配置“运行参数”。本例对重点参数加以说明,其他参数根据业务情况自行配置即可。
Flink Jar作业可靠性配置与SQL作业相同,不再另行说明。
- 根据如下公式,配置作业的“CU数量”、“管理单元”与“最大并行数”:
CU数量 = 管理单元 + (算子总并行数 / 单TM Slot数) * 单TM所占CU数
例如:CU数量为9CU,管理单元为1CU,最大并行数为16,则计算单元为8CU。
如果不手动配置TaskManager资源,则单TM所占CU数默认为1,单TM slot数显示值为0,但实际上,单TM slot数值依据上述公式计算结果为2。
如果手动配置TaskManager资源,请依据上述公式计算配置,建议作业最大并行数为计算单元2倍为宜。
- 勾选“保存作业日志”,选择一个OBS桶。如果该桶未授权,需要单击“立即授权”进行授权。配置该参数,可以在作业异常失败后,将作业日志保存到用户的OBS桶下,方便用户定位故障原因。
图3 保存作业日志
- 勾选“作业异常告警”,选择1中创建的“SMN主题”。配置该参数,可以在作业异常情况下,向用户指定邮箱或者手机发送消息通知,方便客户及时感知异常。
图4 作业异常告警
- 勾选“开启Checkpoint”,依据自身业务情况调整Checkpoint间隔和模式。Flink Checkpoint机制可以保证Flink任务突然失败时,能够从最近的Checkpoint进行状态恢复重启。
图5 checkpoint参数
- “Checkpoint间隔”为两次触发Checkpoint的间隔,执行Checkpoint机制会影响实时计算性能,配置间隔时间需权衡对业务的性能影响及恢复时长,最好大于Checkpoint的完成时间,建议设置为5分钟。
- Exactly Once模式保证每条数据只被消费一次,At Least Once模式每条数据至少被消费一次,请依据业务情况选择。
- 勾选“异常自动恢复”和“从Checkpoint恢复”,根据自身业务情况选择重试次数。
- 配置“脏数据策略”,依据自身的业务逻辑和数据特征选择忽略、抛出异常或者保存脏数据。
- 选择“运行队列”。提交并运行作业。
- 根据如下公式,配置作业的“CU数量”、“管理单元”与“最大并行数”:
- 登录云监控服务CES控制台,在“云服务监控”列表中找到“数据湖探索”服务。在Flink作业中找到目标作业,单击“创建告警规则”。创建警告规则具体步骤请参考《创建告警规则》。
DLI 为Flink作业提供了丰富的监控指标,用户可以依据自身需求使用不同的监控指标定义告警规则,实现更细粒度的作业监控。
监控指标说明请参考《数据湖探索用户指南》>《数据湖探索监控指标说明》。