Beam Python 中的不可恢复错误
不可恢复错误是在作业启动时发生的,会阻止作业成功运行的问题。问题通常源于错误配置。此页面提供有关常见错误的背景信息和故障排除信息。
作业提交或 Python 运行时版本不匹配
如果您用于提交作业的 Python 版本与用于构建工作器容器的 Python 版本不匹配,则作业不会运行。作业在作业提交后立即失败。
要解决此问题,请确保用于提交作业的 Python 版本与 Python 容器版本匹配。
使用 pip 的依赖项解析失败
在工作器启动期间,工作器可能会失败,并根据运行器尝试重新启动。
在工作器接受工作之前,会检查并安装工作器容器中的依赖项。如果管道需要运行时环境中不存在的依赖项,则会在此期间安装它们。当此过程中出现问题时,您可能会遇到依赖项解析失败。
问题示例包括以下内容
- 找不到依赖项版本。
- 工作器无法连接到 PyPI。
要解决此问题,请在提交作业之前确保 requirements.txt
文件中提供的依赖项版本存在,并且您可以本地安装它们。
依赖项版本不匹配
当您的管道存在依赖项版本不匹配时,您可能会看到 ModuleNotFound
错误或 AttributeError
消息。
当附加依赖项(例如
torch
和transformers
)既未在requirements_file
中指定也未在自定义容器中预安装时,就会出现ModuleNotFound
错误。在这种情况下,工作器可能无法反序列化(取消封存)用户代码。当依赖项已安装但其版本与提交环境中的版本不匹配时,您的管道可能会出现
AttributeError
消息。
要解决这些问题,请确保运行时和提交环境中所需的依赖项及其版本相同。为了帮助您识别这些问题,在 Apache Beam 2.52.0 及更高版本中,调试日志会分别指定这两个阶段的依赖项。有关更多信息,请参阅 控制管道使用的依赖项。