YuF*_*hen 1 apache-flink flink-streaming
我在下面得到了一个声明:
“根据您的状态后端,Flink 还可以管理应用程序的状态,这意味着 Flink 处理内存管理(如有必要,可能会溢出到磁盘)以允许应用程序保持非常大的状态。”
https://ci.apache.org/projects/flink/flink-docs-master/dev/stream/state/state_backends.html
这是否意味着只有当状态后端配置为 时RocksDBStateBackend,状态才会保留在内存中并可能在必要时溢出到磁盘?
但是,如果配置为MemoryStateBackend或FsStateBackend,则状态仅保留在内存中,永远不会溢出到磁盘。
是的,总的来说你是对的。只有RocksDBStateBackend这样才会有数据溢出到磁盘。
在这两种情况下MemoryStateBackend和FsStateBackend状态始终保持在TaskManagers内存中,因此必须适合在那里。这两个后端之间的区别在于它们检查点数据的方式。
如果MemoryStateBackend检查点数据被发送到 JobManager 并保存在那里的内存中。
的FsStateBackend在文件系统的检查点时存储数据并且(在元数据文件夹中或高可用性方案存储)只发送小的元数据以JobManager
因此,对于任何生产用例,RocksDBStateBackend都非常鼓励这样做。您可以在此处找到更深入的信息。
| 归档时间: |
|
| 查看次数: |
402 次 |
| 最近记录: |