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

Flink:关于Flink检查点和保存点的查询

慕兴平
2023-03-14

下面是我对Flink的疑问。

  1. 我们可以将检查点和保存点存储到RockDB等外部数据结构中吗?还是只是我们可以存储在RockDB等中的状态。
  2. 状态后端是否会影响检查点?如果是,以何种方式?
  3. 什么是状态处理器API?它与我们存储的保存点和检查点直接相关吗?状态处理器API提供了普通保存点无法提供的哪些额外好处?

对于3个问题,请尽可能描述性地回答。我对学习状态处理器API很感兴趣,但我想深入了解它的应用程序以及它在哪些场景中是必不可少的。

共有1个答案

厍建义
2023-03-14

>

  • 检查点和保存点只能写入满足Flink文件系统抽象要求的存储中。您希望使用耐久性和冗余的东西,如S3或HDFS。RocksDB不支持作为检查点或保存点的数据存储。

    状态后端参与检查点,检查点以特定于状态后端的格式编写。基于堆的状态后端和基于rocksdb的状态后端在检查点方面的最大区别在于,只有rocksdb状态后端支持增量检查点。

    状态处理器API允许您编写可以读取和写入保存点(以及外部化检查点)的应用程序。这对于检查应用程序的状态以进行分析或调试、执行状态迁移以及引导新应用程序的状态非常有用,下面给出几个示例。

  •  类似资料:
    • 我知道stackoverflow上也有类似的问题,但在调查了其中几个之后,我知道 > 他们正在使用不同的存储格式 但这些并不是令人困惑的地方,我不知道什么时候该用一个,什么时候该用另一个。 考虑以下两种情况: 如果由于某种原因(例如错误修复或意外崩溃)需要关闭或重新启动整个应用程序,那么我必须使用保存点来恢复整个应用程序

    • 如果Flink应用程序在发生故障或更新后正在启动备份,那么不明确属于KeyedState或OperatorState的类变量是否会持久化? 例如,Flink的留档中描述的BoundedOutOfOrdernessGenerator有一个电流最大时间戳变量。如果更新了Flink应用程序,电流最大时间戳中的值是否会丢失,或者是否会写入在应用程序更新之前创建的保存点? 这样做的真正原因是我想实现一个自定

    • 我想在flink中测试一次端到端的处理。我的工作是: Kafka资料来源- 我在mapper1中放了一个< code > thread . sleep(100000),然后运行了这个作业。我在停止作业时获取了保存点,然后从mapper1中删除了< code > thread . sleep(100000),我希望该事件应该会被重放,因为它没有下沉。但这并没有发生,乔布斯正在等待新的事件。 我的Ka

    • 我有两个关于Flink外部化检查站的问题 (Q1)我可以在flink-conf.yaml中设置“state.checkpoints.dir”,以使外部化的检查点正常工作,但当我从IDE运行flink时,如何实现同样的效果呢?我尝试了中提到的全局配置方法(http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/state

    • 我正在kubernetes中运行一个Flink作业。我的设置如下 1个作业管理器吊舱 我的flink作业从kafka源获取时间序列数据(时间、值),进行聚合和其他转换,并将其发布到kafka接收器。 有时,我的作业因检查点异常(10分钟后超时)而失败,主要是由一名操作员完成的。我不理解异步持续时间(在图中)的含义,为什么它花费的时间最长。在这个异常之前,Kafka的吞吐量非常高,有500-800万

    • 我们正在尝试使用RocksDB后端设置Flink有状态作业。我们使用会话窗口,有30分钟的间隔。我们使用aggregateFunction,所以不使用任何Flink状态变量。通过采样,我们的事件数不到20k次/秒,新会话数不到20-30次/秒。我们的会议基本上收集了所有的事件。会话累加器的大小会随着时间而增大。我们总共使用了10G内存和Flink1.9,128个容器。以下是设置: 从我们对给定时间