当前位置: 首页 > 知识库问答 >
问题:

Apache Flink:为什么选择MemoryStateBackend而不是FsStateBackend?

岳俊雅
2023-03-14

共有1个答案

令狐嘉禧
2023-03-14

正如您所说的,MemoryStateBackendFsStateBackend都基于HeapkeyedStateBackend。这意味着,两个状态后端都将操作符的状态维护为TaskManager的JVM堆上的常规对象,也就是说,状态总是在内存中访问。

后端在保持检查点状态的方式上有所不同。检查点是存储在某个地方的应用程序的所有操作符的状态的副本。如果发生故障,则重新启动应用程序,并从检查点初始化操作员的状态。

fsstatebackend将检查点存储在文件系统中,通常是HDFS、S3或挂载在所有工作节点上的NFS。MemoryStateBackend将状态存储在JobManager的JVM中。这有以下利弊:

  • 无需设置(分布式)文件系统
  • 无需配置存储位置。

缺点:

  • 如果JobManager进程死亡,状态将丢失。
  • 状态大小由JobManager内存大小绑定。
 类似资料:
  • 在使用来自Java背景的Swift时,为什么要选择结构而不是类呢?似乎它们是一样的,结构提供的功能较少。那为什么选择它呢?

  • 本文向大家介绍为什么选择茉莉而不是开玩笑是什么原因?,包括了为什么选择茉莉而不是开玩笑是什么原因?的使用技巧和注意事项,需要的朋友参考一下 没有充分的理由选择茉莉而不是开玩笑。两者都是优秀的库,已经存在了一段时间,并且以一种自以为是的方式来处理非常相似的事情。笑话是建立在茉莉花之上的。 选择茉莉而不是开玩笑的原因之一是它更快。(https://github.com/facebook/jest/is

  • 问题内容: 使用代替或的优点是什么? 问题答案: Thread和Runnable是Java 1.0的一部分;他们和当时一样出色。 从那时起,新的并发类将提炼出关于多线程的所有知识(感谢您,Doug Lea和其他人)。编写多线程代码非常困难。包括SwingWorker在内的新的并发类都试图使其变得更容易。 首先请注意用于强类型键入的泛型。有内置的机制可以发布和处理最终结果和中间结果。 可以使用Thr

  • 问题内容: 流式XML解析器(例如SAX和StAX)比构建像DOM解析器之类的树结构的解析器更快,内存效率更高。SAX是推送分析器,这意味着它是观察者模式(也称为侦听器模式)的实例。SAX首先出现,然后是StAX- 拉式解析器,这意味着它基本上像迭代器一样工作。 您可以找到在任何地方都偏爱StAX而不是SAX的原因,但是通常可以归结为:“更易于使用”。 在JAXP上的Java教程中,StAX被模糊

  • 问题内容: 来自python Wiki 多元元组 在Python中,多元元组看起来像: … 但是,再次定义元组的是逗号而不是括号。 真的吗?! 那么为什么: 更严重的是,我不明白为什么不选择括号而不是逗号? 因为我认为在以下情况下会产生悖论: 但是,如果您认为圆括号 总是 负责实例化a ,那么用多个项目实例化的所有问题 都消失了。 例如在我的想象世界中: 我知道这是一个众所周知的功能,如果已经重复

  • 问题内容: 在Java背景下玩Swift,为什么要选择Struct而不是Class?似乎它们是同一回事,但Struct提供的功能较少。为什么选择它呢? 问题答案: 根据非常流行的WWDC 2015演讲《 Swift中的面向协议的编程》(视频,成绩单),Swift提供了许多功能,这些功能在许多情况下都比类更好。 如果结构相对较小且可复制,则结构是可取的,因为与在类中多次引用相同实例相比,复制要安全得