【问题标题】:Flink checkpoint is getting abortedFlink 检查点被中止
【发布时间】:2020-12-15 14:54:37
【问题描述】:

我在 Intellij 中运行 Apache Flink 迷你集群。 尝试设置一个流连接,其中一个流来自 kinesis 源,另一个来自 jdbc。

当我从表源创建数据流时,如下所示:

 // Table with two fields (String name, Integer age)
 Table table = ...

 // convert the Table into an append DataStream of Row by specifying the class
 DataStream<Row> dsRow = tableEnv.toAppendStream(table, Row.class);

我在堆栈跟踪中收到以下信息消息:

INFO  org.apache.flink.runtime.checkpoint.CheckpointCoordinator    [] - Checkpoint triggering task 
 Soource ...  
job bcf73c5d7a0312d57c2ca36d338d4569 is not in state RUNNING but FINISHED instead. Aborting 
checkpoint. 

【问题讨论】:

    标签: apache-flink flink-streaming


    【解决方案1】:

    如果作业的任何任务已运行完成,则不会发生 Flink 检查点。也许您的 jdbc 源已经完成,这阻止了任何进一步的检查点?

    【讨论】:

    • 我还为另一个数据流配置了接收器功能。但是 sink 函数在 flink checkpointing 上触发 -> public class clazz extends RichSinkFunction 实现 CheckpointedFunction, CheckpointListener。我试图首先接收流的内容,然后将其加入到从表创建的数据流中。当我只运行第一个接收器功能时,它工作正常
    • 听起来不太可能导致这种情况。
    • 我每 5 秒检查一次。我的 JDBC 源作业在此之前已经完成,当 flink 尝试检查点时,遇到了这个问题。
    • 我确实找到了这篇文章cwiki.apache.org/confluence/display/FLINK/…
    • 有办法解决这个问题吗?是否可以保持 JDBC 源刷新,允许 flink 到检查点?
    【解决方案2】:

    您可以检查您的并行设置, 如果您的程序的并行度大于源的并行度,则某些任务将显示完成,因为它没有数据,这将中止检查点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-18
      • 2020-09-16
      • 2021-01-27
      • 2021-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多