为什么我无法启动由 AWS Glue 开发终端节点提供支持的 Amazon SageMaker 笔记本实例?

1 分钟阅读
0

由 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 时,可以考虑恢复笔记本,但无法新建开发终端节点。

要恢复笔记本数据,请执行以下步骤:

  1. 打开 SageMaker console(SageMaker 控制台)。
  2. 在导航窗格中的笔记本下,选择笔记本实例
  3. 选择要恢复的笔记本。
  4. 如果笔记本状态不是已停止,请选择操作,然后选择停止以停止笔记本实例。
    您可以看到笔记本实例状态改为正在停止。等到状态改为已停止,即可完成其余步骤。
  5. 依次选择操作更新设置
  6. 编辑笔记本实例页面的其他配置下,对于生命周期配置,选择无配置
  7. 选择创建笔记本实例

笔记本实例状态改为正在更新。笔记本实例更新完成后,状态将改为已停止。选择启动以启动实例。实例启动后,您可以访问 Jupyter 和 JupyterLab 以在本地下载脚本和数据。但是,您仍然无法连接到 AWS Glue 开发终端节点。

**重要提示:**您可以将脚本链接到 GitHub 存储库,以避免将来丢失数据。

**注意:**如果在您尝试安装库时出现生命周期配置超时,请参阅如果在我尝试安装库时出现生命周期配置超时,如何确保手动安装的库在 Amazon SageMaker 中持久存在?


相关信息

教程:将 SageMaker 笔记本与开发端点搭配使用

AWS Glue 控制台上的 SageMaker 笔记本

在 AWS Glue 控制台上使用脚本

为 SageMaker 笔记本创建 IAM 策略

AWS 官方
AWS 官方已更新 2 年前