由 AWS Glue 开发终端节点提供支持的 Amazon SageMaker 笔记本实例超时并出现以下错误:
"笔记本实例生命周期配置 'arn:aws:sagemaker:us-xxxx-x:xxxxxx:notebook-instance-lifecycle-config/mylifecycleconfig' for Notebook Instance 'arn:aws:sagemaker:us-xxxx-x:xxxxxx:notebook-instance/mynotebook' 已执行超过 5 分钟时间。如果笔记本实例可以访问互联网,请查看 CloudWatch 日志以了解更多详细信息。”
解决方法
此错误可能表示 AWS Glue 开发终端节点上的 Apache Livy 服务无法与运行笔记本的服务器通信。造成此问题的最常见原因是,附加到笔记本的生命周期配置可能引用了不存在的开发终端节点。SageMaker 生命周期脚本用于配置 SparkMagic 插件以针对在开发终端节点上运行的 Livy 服务器调用 REST API。要了解这些组件如何协同工作,请参阅 AWS Glue 开发端点如何与 SageMaker 笔记本协同工作。
要解决此问题,请尝试以下故障排查选项。
新建开发终端节点
新建 AWS Glue 开发终端节点,最好其具备与所使用终端节点相同的名称和配置。有关更多信息,请参阅添加开发终端节点。
更新笔记本实例的生命周期配置
如果满足以下任一条件,则必须更新失败的笔记本实例生命周期配置:
- 创建了不同名称的开发终端节点。
- 您想要使用之前创建的开发终端节点。
要更新笔记本的生命周期配置,请执行以下操作:
1. 打开 SageMaker console(SageMaker 控制台)。
2. 在导航窗格中的 notebook(笔记本)下,选择 Lifecycle configurations(生命周期配置)。
3. 选择失败的笔记本实例生命周期配置。
4. 选择 Edit (编辑)。
5. 在 Scripts(脚本)部分,对于 Start notebook(启动笔记本)和 Create notebook(创建笔记本)脚本,请将以下命令中的开发终端节点名称替换为您创建的端点 (example_new_dev_endpoint) 的名称:
请务必将命令中的 us-east-1 更新为 AWS Glue 开发终端节点所在的区域。
aws glue get-dev-endpoint --endpoint-name example_new_dev_endpoint --endpoint https://glue.us-east-1.amazonaws.com
**注意:**请确保 SageMaker 笔记本具有访问开发终端节点所需的权限。
恢复笔记本数据
当您有权访问 SageMaker 时,可以考虑恢复笔记本,但无法新建开发终端节点。
要恢复笔记本数据,请执行以下步骤:
- 打开 SageMaker console(SageMaker 控制台)。
- 在导航窗格中的笔记本下,选择笔记本实例。
- 选择要恢复的笔记本。
- 如果笔记本状态不是已停止,请选择操作,然后选择停止以停止笔记本实例。
您可以看到笔记本实例状态改为正在停止。等到状态改为已停止,即可完成其余步骤。
- 依次选择操作和更新设置。
- 在编辑笔记本实例页面的其他配置下,对于生命周期配置,选择无配置。
- 选择创建笔记本实例。
笔记本实例状态改为正在更新。笔记本实例更新完成后,状态将改为已停止。选择启动以启动实例。实例启动后,您可以访问 Jupyter 和 JupyterLab 以在本地下载脚本和数据。但是,您仍然无法连接到 AWS Glue 开发终端节点。
**重要提示:**您可以将脚本链接到 GitHub 存储库,以避免将来丢失数据。
**注意:**如果在您尝试安装库时出现生命周期配置超时,请参阅如果在我尝试安装库时出现生命周期配置超时,如何确保手动安装的库在 Amazon SageMaker 中持久存在?
相关信息
教程:将 SageMaker 笔记本与开发端点搭配使用
AWS Glue 控制台上的 SageMaker 笔记本
在 AWS Glue 控制台上使用脚本
为 SageMaker 笔记本创建 IAM 策略