选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

Apache Beam 应用程序出现检查点故障

聚焦模式
Apache Beam 应用程序出现检查点故障 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink 之前称为 Amazon Kinesis Data Analytics for Apache Flink。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Managed Service for Apache Flink 之前称为 Amazon Kinesis Data Analytics for Apache Flink。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

如果您的 Beam 应用程序配置为shutdownSourcesAfterIdleMs设置为 0ms,则检查点可能无法触发,因为任务处于 “已完成” 状态。本节介绍这种情况的症状和解决方法。

症状

前往您的 Apache Flink 应用程序 CloudWatch 日志托管服务,检查是否记录了以下日志消息。以下日志消息表明,由于某些任务已经完成,检查点未能触发。

{ "locationInformation": "org.apache.flink.runtime.checkpoint.CheckpointCoordinator.onTriggerFailure(CheckpointCoordinator.java:888)", "logger": "org.apache.flink.runtime.checkpoint.CheckpointCoordinator", "message": "Failed to trigger checkpoint for job your job ID since some tasks of job your job ID has been finished, abort the checkpoint Failure reason: Not all required tasks are currently running.", "threadName": "Checkpoint Timer", "applicationARN": your application ARN, "applicationVersionId": "5", "messageSchemaVersion": "1", "messageType": "INFO" }

这也可以在 Flink 控制面板上找到,其中一些任务已进入 “已完成” 状态,并且无法再进行检查点操作了。

处于 “已完成” 状态的任务

原因

shutdownSourcesAfterIdleMs 是一个 Beam 配置变量,用于关闭在配置的毫秒时间内处于空闲状态的信号源。一旦源被关闭,就无法再进行检查点检查了。这可能导致检查点失败

任务进入 “已完成” 状态的原因之一 shutdownSourcesAfterIdleMs 是设置为 0 毫秒,这意味着空闲的任务将立即关闭。

解决方案

要防止任务立即进入 “已完成” 状态,请 shutdownSourcesAfterIdleMs 将其设置为 long.max_Value。这可以通过两种方式完成:

  • 选项 1:如果在 Apache Flink 托管服务应用程序配置页面中设置了 beam 配置,则可以添加新的密钥值对来设置 shutdpwnSourcesAfteridle Ms,如下所示:

    设置为 long. shutdownSourcesAfter IdleMs max_Value
  • 选项 2:如果在 JAR 文件中设置了光束配置,则可以 shutdownSourcesAfterIdleMs 按以下方式进行设置:

    FlinkPipelineOptions options = PipelineOptionsFactory.create().as(FlinkPipelineOptions.class); // Initialize Beam Options object options.setShutdownSourcesAfterIdleMs(Long.MAX_VALUE); // set shutdownSourcesAfterIdleMs to Long.MAX_VALUE options.setRunner(FlinkRunner.class); Pipeline p = Pipeline.create(options); // attach specified options to Beam pipeline

本页内容

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。