我正在flink集群中运行flink流作业。我需要模拟一个工作失败的情况。我在源中引入了一个损坏的事件。当该事件发生时,我看到作业抛出异常和任务已从检查点重新启动。我已经设置了以下配置:
restart-strategy.fixed-delay.attempts: 1
restart-strategy.fixed-delay.delay: 5 s
但是这些配置没有兑现。即使在第一次尝试后,任务仍保持恢复。根据文档,第一次尝试后作业应失败。我需要模拟作业失败的情况。怎么做?
答案 0 :(得分:1)
最简单的方法是创建一个特定的作业,该作业每次在处理数据时都会抛出异常,例如在自定义columns = ["group", "number_of_days"]
df_features = pd.DataFrame([["a", 3],
["b", 6],],
columns=columns)
df_features
内部。我不知道您在那里从事的工作是什么,但是另一件事可能是发送不正确的输入数据,如果您正在从某些来源(例如Kafka)读取数据,则会导致该工作失败。
答案 1 :(得分:1)
您可以设置
restart-strategy: none
在这种情况下,作业将直接失败,而不会尝试重新启动。
答案 2 :(得分:0)
我对此有类似的困惑。结合测试,我做一些猜测。 restart-strategy.fixed-delay.attempts 表示重启作业失败时的重试次数。在您的情况下,Flink 作业可以成功重新启动,之后,从源获取损坏的事件并使作业失败。因此,即使在第一次尝试后,任务也会继续恢复。您可以关闭源或接收器来模拟作业失败,在这种情况下,作业只会重新启动失败尝试一次。