使用了不支持的 SDK

如果从超过了受支持日期的 SDK 版本提交作业,则会导致中断,并降低长时间运行的批处理作业或流处理作业的吞吐量。如需缓解潜在问题,请执行以下操作:

使用不受支持的 SDK 版本启动作业

当您从超过受支持日期的 SDK 版本提交 Dataflow 作业时,您将会收到一条错误消息,指示您升级 SDK 版本,或在提交作业时使用临时令牌。

错误消息中的令牌值包含令牌过期时的日期时间以及令牌本身。到期日期设在未来两周内。

如果要使用令牌,请使用 unsupported_sdk_temporary_override_token 实验标志和令牌值重新提交作业。

--experiments=unsupported_sdk_temporary_override_token=TOKEN

如果您使用过期的令牌提交作业,您将会收到另外一条错误消息,通知您已过期的状态。您可以升级到受支持的 SDK 版本,或者在不使用令牌的情况下重新提交作业,以获取新令牌。

不应将令牌用作持续使用不受支持的 SDK 的永久方式。在 SDK 不受支持的日期后的某个时间,系统将撤消所有令牌,而所有使用该不受支持的 SDK 版本的作业都将被拒绝。如需详细了解每个 SDK 的支持状态,请参阅 SDK 版本支持状态

恢复中断的作业

使用不受支持的 SDK 的长时间运行的 Dataflow 作业(如流处理作业)也会中断,并且其吞吐量会显著降低。您可以通过作业日志中的以下错误消息来识别中断的作业:

该服务使用不受支持的 Python 2.3.0 版 SDK Apache Beam SDK,因此工作流已被自动中断。请升级到最新的 SDK 版本。如需临时恢复中断的作业,请使用 gcloud alpha dataflow jobs resume-unsupported-sdk --token=TOKEN --region=REGION JOB_ID。请注意,使用此令牌恢复的作业将于 2020-08-28T11:2158-07:00 再次中断。如需查看受支持的 SDK 版本的列表,请参阅:https://cloud.google.com/dataflow/support#support-status-for-dataflow-sdk-releases。

正如错误所提示,可以使用 resume-unsupported-sdk 命令缓解这种中断。恢复中断的作业是一项临时解决方案。您应该升级您的 SDK 版本,以避免日后弃用。