我们希望将Apache Flink与RocksDB后端(HDFS(一起用于有状态流处理。但是,我们的应用程序状态(键控状态(将以TB为单位。
据我所知,当我们从保存点恢复作业时,所有操作员状态数据都将从HDFS上的保存点位置发送到每个任务管理器。如果状态大约为TB,那么如果所有这些状态都需要转移,那么每次部署都会导致很长的停机时间。
我想了解的是,如果在RocksDB的情况下,可以配置延迟加载,其中键控状态在需要时从HDFS中检索,然后缓存在本地磁盘上。
谢谢!
如果您正在使用RocksDB并将Flink集群配置为使用本地恢复,您可以在此处阅读,那么RocksDB文件的副本将保留在每个任务管理器的本地磁盘上,并且恢复几乎是立即的(除了任何必须启动的新节点(。
然而,这并不真正适用于保存点,因为这种机制需要增量快照才能真正正常工作。
您可能想阅读整个文档页面,其中介绍了如何配置和调优使用大量状态的应用程序。