Beam Python 中無法復原的錯誤
無法復原的錯誤是在作業啟動時發生的問題,會阻止作業成功執行。問題通常源自於錯誤的設定。本頁提供關於常見錯誤的背景資訊和疑難排解資訊。
作業提交或 Python 執行階段版本不符
如果您用於提交作業的 Python 版本與用於建置工作程式容器的 Python 版本不符,則作業將不會執行。作業會在提交後立即失敗。
若要解決此問題,請確保用於提交作業的 Python 版本與 Python 容器版本相符。
使用 pip 的相依性解析失敗
在工作程式啟動期間,工作程式可能會失敗,並且根據執行器,嘗試重新啟動。
在工作程式接受工作之前,會檢查相依性並將其安裝在工作程式容器中。如果管道需要執行階段環境中尚未存在的相依性,則會在 此時安裝。當此過程中發生問題時,您可能會遇到相依性解析失敗。
問題範例包括下列各項
- 找不到相依性版本。
- 工作程式無法連線到 PyPI。
若要解決此問題,請在提交作業之前,確保您 requirements.txt
檔案中提供的相依性版本存在,並且您可以在本機安裝它們。
相依性版本不符
當您的管道有相依性版本不符時,您可能會看到 ModuleNotFound
錯誤或 AttributeError
訊息。
當
requirements_file
中未指定其他相依性 (例如torch
和transformers
) 或未在自訂容器中預先安裝時,會發生ModuleNotFound
錯誤。在這種情況下,工作程式可能無法還原序列化 (unpickle) 使用者程式碼。當安裝相依性,但其版本與提交環境中的版本不符時,您的管道可能會出現
AttributeError
訊息。
若要解決這些問題,請確保執行階段和提交環境中所需相依性和其版本都相同。為了協助您找出這些問題,在 Apache Beam 2.52.0 及更高版本中,偵錯記錄會指定兩個階段的相依性。如需詳細資訊,請參閱控制管道使用的相依性。