flink 1.8
容错Fault Tolerance
Flink的容错机制在出现故障时恢复程序并继续执行它们。此类故障包括机器硬件故障,网络故障,瞬态程序故障等。
批处理容错(DataSet API)
DataSet API中程序的容错能力通过重试失败来实现。在作业被声明为失败之前,Flink重试执行的时间可以通过执行重试参数进行配置。如果值为0,则表示禁用容错机制。
若要启动容错,请将执行重试设置为大于零的值。一个常见的选择是值3。
这个例子展示了如何为Flink DataSet程序配置执行重试。
ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
env.setNumberOfExecutionRetries(3);
您还可以在以下位置定义执行重试次数和重试延迟的默认值flink-conf.yaml:
execution-retries.default: 3
Retry Delays重试延迟
执行重试可以配置延迟。延迟重试意味着在执行失败后,重新执行不会立即开始,而是在一定的延迟之后才开始。
当程序与外部系统交互时,延迟重试可能会有所帮助,例如,在尝试重新执行之前,连接或挂起的事务应该达到超时。
您可以为每个程序设置重试延迟,如下所示(示例显示DataStream API—DataSet API的工作原理类似):
ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
env.getConfig().setExecutionRetryDelay(5000); // 5000 milliseconds delay
您还可以在以下位置定义重试延迟的默认值flink-conf.yaml:
execution-retries.delay: 10 s
https://ci.apache.org/projects/flink/flink-docs-release-1.8/dev/batch/fault_tolerance.html