检查点已超时 - Amazon Kinesis Data Analytics
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

检查点已超时

如果您的应用程序没有优化或正确配置,检查点可能会失败。本节介绍了此情况的症状和故障排除步骤。

征兆

如果应用程序的检查点失败,numberOfFailedCheckpoints将大于零。

检查点可能由于直接故障(例如应用程序错误)或临时性故障(例如应用程序资源耗尽)而失败。检查应用程序日志和指标是否存在以下症状:

  • 代码中的错误。

  • 访问应用程序的依赖服务时出错。

  • 序列化数据时出错。如果默认序列化器无法序列化您的应用程序数据,则应用程序将失败。有关在应用程序中使用自定义序列化器的信息,请参阅自定义序列化器中的Apache Flink 文档.

  • 内存不足错误。

  • 以下指标的峰值或稳步增长:

    • heapMemoryUtilization

    • oldGenerationGCTime

    • oldGenerationGCCount

    • lastCheckpointSize

    • lastCheckpointDuration

有关监控检查点的更多信息,请参阅监控检查点中的Apache Flink 文档.

原因和解决方案

您的应用程序日志错误消息显示了直接失败的原因。暂时性故障可能有以下原因:

  • 您的应用程序没有足够的 KPU 配置。有关增加应用程序配置的信息,请参扩展.

  • 应用程序状态大小太大。您可以使用监控应用程序状态大小lastCheckpointSize指标。

  • 应用程序的状态数据在密钥之间分布不均匀。如果应用程序使用KeyBy操作员,请确保您的传入数据在密钥之间平均分配。如果大多数数据被分配给单个密钥,这会产生导致失败的瓶颈。

  • 您的应用程序遇到内存或垃圾回收背压。监控你的应用程序heapMemoryUtilizationoldGenerationGCTime, 和oldGenerationGCCount对于峰值或稳步增长的价值。