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

Flink流作业中的检查点设置失败(表/Sql Api)

徐瀚
2023-03-14

我的工作流程工作原理如下:

src[Kafka]-

但我的工作是运行精细的数据完美地流向Kafka和MySQL,但它在检查点失败,附加图像相同。

Ps :目前我已经禁用了检查点,但是当我使用相同的属性启用时,它会失败

共有1个答案

子车鸿运
2023-03-14

检查点失败,因为它超时。检查点超时的典型原因是背压,这会阻止检查点屏障在执行图中以足够快的速度进行。另一种可能性是用于写入检查点存储的带宽或配额不足。

一些想法:

  • 增加超时(默认超时为10分钟;你的已经减少到2分钟)
  • 启用未对齐的检查点(这应该会减少反压力对检查点时间的影响)
  • 找到背压的原因并缓解它(mysql查找是一个明显的候选者)
  • 检查并行子任务是否存在检查点大小、对齐时间等不对称的证据,表明热键、未对齐的水印或其他线索导致处理偏斜
 类似资料:
  • 我正在kubernetes中运行一个Flink作业。我的设置如下 1个作业管理器吊舱 我的flink作业从kafka源获取时间序列数据(时间、值),进行聚合和其他转换,并将其发布到kafka接收器。 有时,我的作业因检查点异常(10分钟后超时)而失败,主要是由一名操作员完成的。我不理解异步持续时间(在图中)的含义,为什么它花费的时间最长。在这个异常之前,Kafka的吞吐量非常高,有500-800万

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

  • 我用纱线做Flink的工作。对于每个Flink作业,我都会创建一个检查点。 我提交了一份在我的纱线集群中运行的Flink作业。我有一个轮询作业,它检查一个作业是否在纱线上失败并重新启动它。再次提交作业时,纱线会为此Flink作业创建一个新的application\u id。如何配置重新提交的Flink作业以使用重新启动的Flink作业的检查点。 我已经设置了conf的状态。保存点。目录=hdfs:

  • 我正在使用Apache Flink RabbitMQ堆栈。我知道有机会手动触发保存点并从中还原作业,但问题是Flink会在成功的检查点之后确认消息,如果要使保存点和还原状态为,则会丢失上次成功的保存点和上次成功的检查点之间的所有数据。有没有办法从检查点恢复作业?这将解决在不可重放数据源(如rabbitmq)的情况下丢失数据的问题。顺便说一句,如果我们有检查点及其所有开销,为什么不让用户使用它们呢?

  • 我正在检查Flink Sql Table与kafka连接器是否可以在EXACTLY_ONCE模式下执行,我的方法是创建一个表,设置合理的检查点间隔,并在event_time字段上使用简单的翻滚函数,最后重新启动我的程序。 以下是我的详细进度: 1:创建一个Kafka表 2:启动我的 Flink 作业,如下所示配置 3:执行我的sql 如我们所见,翻转窗口间隔为5分钟,检查点间隔为30秒,每个翻转窗

  • 是否可以从Flink流作业触发检查点? 我的用例是:我有两个流R和S要用滚动的时间窗口连接。来源是Kafka。我使用事件时间处理和BoundedOutOfOrdernessGenerator来确保来自两个流的事件最终出现在同一个窗口中。