【发布时间】:2018-06-06 23:23:07
【问题描述】:
我有一个 Flink 集群,我通过 S3 使用了检查点, 每分钟我都会在 S3 中获取当前状态的快照,这需要 20 秒, 但快照使用所有网络带宽 (1 Gb/s),所以我的工作每分钟有 20 秒的延迟。
我的问题是,有没有办法限制检查点的带宽或通过检查点或其他解决方案禁用完整的网络使用?
谢谢
【问题讨论】:
标签: apache-flink flink-streaming
我有一个 Flink 集群,我通过 S3 使用了检查点, 每分钟我都会在 S3 中获取当前状态的快照,这需要 20 秒, 但快照使用所有网络带宽 (1 Gb/s),所以我的工作每分钟有 20 秒的延迟。
我的问题是,有没有办法限制检查点的带宽或通过检查点或其他解决方案禁用完整的网络使用?
谢谢
【问题讨论】:
标签: apache-flink flink-streaming
如果您还没有这样做,我建议您考虑使用增量检查点(使用 RocksDB)。该功能是在 Flink 1.4 中添加的,已被证明对大状态的 Flink 应用非常有用。
增量检查点默认关闭。要启用它,请将 true 传递给构造函数,如下所示
RocksDBStateBackend backend =
new RocksDBStateBackend(filebackend, true);
或在您的配置文件中将 state.backend.incremental 设置为 true。
这不会直接解决您所问的问题——如何限制检查点,以免网络饱和——但应该会有所帮助。
另外,请注意Amazon recommends using the Elastic Network Adapter 在大量使用 S3 的应用程序中。这可提供高达 25 Gbps 的带宽。
有关在 Flink 中处理大型状态的更多信息,您可能需要查看
【讨论】: