You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by Z-Z <zz...@qq.com> on 2020/06/09 05:49:27 UTC
Flink异常及重启容错处理
Hi, 各位大佬们,请教几个问题:
背景:Flink程序在正常运行过程中由于某些原因抛出异常了(比如数据不正确、NullPointer等),设置了checkpoint,程序默认会无限重启,都没办法savepoint。
问题1: Flink希望开发者怎么处理程序的异常?
问题2:checkpoint是否可以转化为savepoint,使得在没来得及savepoint之前能够进行恢复?
问题3:如果我某条数据导致了异常,怎么样才忽略这条数据而不影响应用的状态和运行?
回复:Flink异常及重启容错处理
Posted by 1048262223 <10...@qq.com>.
Hi
1.生产环境中一般都需要try catch捕获异常,因为无法保证上游数据完全没有问题
2.程序默认无限重启代表你的数据有问题,重复处理错误数据,重复失败重启,根本原因还是在错误数据这里
3.某条数据出现异常,try catch + 加perf log + 加监控(报警)等
Best,
Yichao Yang
------------------ 原始邮件 ------------------
发件人: "Z-Z"<zz9876543210@qq.com>;
发送时间: 2020年6月9日(星期二) 中午1:49
收件人: "user-zh"<user-zh@flink.apache.org>;
主题: Flink异常及重启容错处理
Hi, 各位大佬们,请教几个问题:
&nbsp; &nbsp; 背景:Flink程序在正常运行过程中由于某些原因抛出异常了(比如数据不正确、NullPointer等),设置了checkpoint,程序默认会无限重启,都没办法savepoint。
&nbsp; &nbsp; 问题1:&nbsp; Flink希望开发者怎么处理程序的异常?
&nbsp; &nbsp; 问题2:checkpoint是否可以转化为savepoint,使得在没来得及savepoint之前能够进行恢复?
&nbsp; &nbsp; 问题3:如果我某条数据导致了异常,怎么样才忽略这条数据而不影响应用的状态和运行?
Re: 回复:Flink异常及重启容错处理
Posted by Yun Tang <my...@live.com>.
Hi
我想你的问题是数据源中存在之前代码中没有很好处理的corner case,导致在处理某一条“脏数据”时,作业进入FAILED状态。此时即使从之前的checkpoint恢复,由于作业代码逻辑未变,之前的corner case依然无法处理,作业只能无限进去失败状态。
这种场景可以一开始时候将checkpoint的保留策略设置成RETAIN_ON_CANCELLATION [1],这样cancel作业之后,更改业务代码逻辑,从而可以处理之前的问题,再降作业上线从之前的checkpoint恢复 [2],这样做的话,数据是不会丢失的。
[1] https://ci.apache.org/projects/flink/flink-docs-stable/ops/state/checkpoints.html#retained-checkpoints
[2] https://ci.apache.org/projects/flink/flink-docs-stable/ops/state/checkpoints.html#resuming-from-a-retained-checkpoint
祝好
唐云
________________________________
From: Sun.Zhu <17...@163.com>
Sent: Sunday, June 14, 2020 0:20
To: user-zh@flink.apache.org <us...@flink.apache.org>
Cc: user-zh <us...@flink.apache.org>
Subject: 回复:Flink异常及重启容错处理
问题1: Flink希望开发者怎么处理程序的异常?
--异常数据当然需要用户自己try catch处理掉,否则即使从上个checkpoint恢复依然会使程序挂掉。
问题2:checkpoint是否可以转化为savepoint,使得在没来得及savepoint之前能够进行恢复?
―没太明白你的问题
问题3:如果我某条数据导致了异常,怎么样才忽略这条数据而不影响应用的状态和运行?
―本质是和问题1一样的,如果是flinksql任务,1.11会支持format.ignore-parse-errors
| |
Sun.Zhu
|
|
17626017841@163.com
|
签名由网易邮箱大师定制
在2020年06月9日 13:49,Z-Z<zz...@qq.com> 写道:
Hi, 各位大佬们,请教几个问题:
背景:Flink程序在正常运行过程中由于某些原因抛出异常了(比如数据不正确、NullPointer等),设置了checkpoint,程序默认会无限重启,都没办法savepoint。
问题1: Flink希望开发者怎么处理程序的异常?
问题2:checkpoint是否可以转化为savepoint,使得在没来得及savepoint之前能够进行恢复?
问题3:如果我某条数据导致了异常,怎么样才忽略这条数据而不影响应用的状态和运行?
回复:Flink异常及重启容错处理
Posted by "Sun.Zhu" <17...@163.com>.
问题1: Flink希望开发者怎么处理程序的异常?
--异常数据当然需要用户自己try catch处理掉,否则即使从上个checkpoint恢复依然会使程序挂掉。
问题2:checkpoint是否可以转化为savepoint,使得在没来得及savepoint之前能够进行恢复?
—没太明白你的问题
问题3:如果我某条数据导致了异常,怎么样才忽略这条数据而不影响应用的状态和运行?
—本质是和问题1一样的,如果是flinksql任务,1.11会支持format.ignore-parse-errors
| |
Sun.Zhu
|
|
17626017841@163.com
|
签名由网易邮箱大师定制
在2020年06月9日 13:49,Z-Z<zz...@qq.com> 写道:
Hi, 各位大佬们,请教几个问题:
背景:Flink程序在正常运行过程中由于某些原因抛出异常了(比如数据不正确、NullPointer等),设置了checkpoint,程序默认会无限重启,都没办法savepoint。
问题1: Flink希望开发者怎么处理程序的异常?
问题2:checkpoint是否可以转化为savepoint,使得在没来得及savepoint之前能够进行恢复?
问题3:如果我某条数据导致了异常,怎么样才忽略这条数据而不影响应用的状态和运行?