SageMaker Notebook Job自定义环境使用及内核找不到报错排查
问题解决指南
内核找不到报错的解决步骤
1. 核查自定义镜像内的内核配置
- 进入镜像对应的容器,检查内核配置目录:
/opt/conda/share/jupyter/kernels/,确认是否存在conda-env-customenv-py文件夹及其中的kernel.json文件 - 打开
kernel.json验证关键配置:display_name需和你在Notebook中使用的内核名称一致argv中的Python路径必须指向自定义环境的可执行文件(例如/opt/conda/envs/customenv/bin/python)
- 若镜像内实际内核名称与报错中的不符,要么修改镜像内的内核命名,要么启动Notebook Job时指定镜像内存在的正确内核名称
2. 调整Notebook Job的启动配置
- 控制台启动Job时,在「Kernel and instance settings」环节的「Kernel specification」下拉菜单中,选择自定义镜像对应的内核,不要选默认的conda环境选项
- 用API调用
CreateNotebookInstanceJob时,需在请求参数里明确设置KernelName为镜像内的正确内核名称,而非系统默认的conda-env-customenv-py
无需生命周期配置的启动时间优化方案
- 精简镜像体积:构建镜像时添加清理命令,比如
conda clean -afy && pip cache purge,删除安装缓存、临时构建文件 - 复用ECR镜像缓存:推送镜像到ECR时使用固定标签(避免频繁用latest),SageMaker会自动缓存已拉取的镜像,后续Job启动无需重新下载
- 匹配实例类型:选择与自定义环境资源需求适配的实例,避免小实例加载大镜像导致的启动缓慢
- 预缓存镜像:提前启动一个临时SageMaker实例挂载自定义镜像,让SageMaker底层缓存保留该镜像,后续Job启动直接复用缓存
内容的提问来源于stack exchange,提问作者Pier-Olivier Marquis
相关产品推荐
相关产品推荐

