本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
与 SageMaker 笔记本搭配使用交互式会话
要与 SageMaker 笔记本配合运行使用交互式会话,请按照以下步骤创建新的生命周期配置和 SageMaker 笔记本实例。
在现有 SageMaker 笔记本实例上安装
注意
目前不支持在现有 SageMaker 笔记本实例上安装交互式会话。尽管生命周期配置可以在现有 N SageMaker otebook 实例上运行,但在现有 N SageMaker otebook 实例上安装交互式会修改 kernelspec 管理器类,这可能会导致其他工作负载出现问题。
使用交互式会话创建新的生命周期配置和 SageMaker 笔记本实例
SageMaker 控制台设置
-
创建生命周期配置。
-
在 SageMaker 控制台上打开生命周期配置页面。
-
请选择 Create Configuration (创建配置)。
-
在 “名称” 字段中,键入AWSGlueInteractiveSessionsPreview “”。
-
在 Scripts(脚本)部分,选择 Create notebook(创建笔记本)选项卡。将以下内容复制并粘贴到文本框,然后选择 Create configuration(创建配置)。
#!/bin/bash set -ex sudo -u ec2-user -i <<'EOF' ANACONDA_DIR=/home/ec2-user/anaconda3 # Create and Activate Conda Env echo "Creating glue_pyspark conda environment" conda create --name glue_pyspark python=3.7 ipykernel jupyter nb_conda -y echo "Activating glue_pyspark" source activate glue_pyspark # Install Glue Sessions to Env echo "Installing AWS Glue Sessions with pip" pip install aws-glue-sessions # Clone glue_pyspark to glue_scala. This is required because I had to match kernel naming conventions to their environments and couldn't have two kernels in one conda env. echo "Cloning glue_pyspark to glue_scala" conda create --name glue_scala --clone glue_pyspark # Remove python3 kernel from glue_pyspark rm -r ${ANACONDA_DIR}/envs/glue_pyspark/share/jupyter/kernels/python3 rm -r ${ANACONDA_DIR}/envs/glue_scala/share/jupyter/kernels/python3 # Copy kernels to Jupyter kernel env (Discoverable by conda_nb_kernel) echo "Copying Glue PySpark Kernel" cp -r ${ANACONDA_DIR}/envs/glue_pyspark/lib/python3.7/site-packages/aws_glue_interactive_sessions_kernel/glue_pyspark/ ${ANACONDA_DIR}/envs/glue_pyspark/share/jupyter/kernels/glue_pyspark/ echo "Copying Glue Spark Kernel" mkdir ${ANACONDA_DIR}/envs/glue_scala/share/jupyter/kernels cp -r ${ANACONDA_DIR}/envs/glue_scala/lib/python3.7/site-packages/aws_glue_interactive_sessions_kernel/glue_spark/ ${ANACONDA_DIR}/envs/glue_scala/share/jupyter/kernels/glue_spark/ echo "Changing Jupyter kernel manager from EnvironmentKernelSpecManager to CondaKernelSpecManager" JUPYTER_CONFIG=/home/ec2-user/.jupyter/jupyter_notebook_config.py sed -i '/EnvironmentKernelSpecManager/ s/^/#/' ${JUPYTER_CONFIG} echo "c.CondaKernelSpecManager.name_format='conda_{environment}'" >> ${JUPYTER_CONFIG} echo "c.CondaKernelSpecManager.env_filter='anaconda3$|JupyterSystemEnv$|/R$'" >> ${JUPYTER_CONFIG} EOF systemctl restart jupyter-server
-
-
使用新的生命周期配置创建 SageMaker 笔记本实例。
-
选择 Notebook instance(笔记本实例)。
-
选择创建笔记本实例。
-
在“Notebook instance name”(笔记本实例名称)字段中输入一个名称。
-
选择“notebook-al2-v1”作为 Platform identifier(平台标识符)。
-
选择 Additional configuration(其他配置)以显示 Lifecycle configuration - optional(生命周期配置 - 可选)下拉菜单。
-
Select Amazon GlueInteractiveSessionsPreview。
-
在 Permissions and encryption(权限和加密)部分中,选择拥有运行 Amazon Glue 交互式会话所需权限的 IAM 角色。有关更多信息,请参阅使用 IAM 保护 Amazon Glue 交互式会话的安全
-
视需要选择其他选项。完成后,选择 Create notebook instance(创建笔记本实例)。
-
-
在 SageMaker 笔记本实例上启动交互式会话。
-
笔记本预置完成后,在“Notebook instances”(笔记本实例)页面上选择 Jupyter Lab。
-
在 Notebook(笔记本)部分选择 conda_glue_pyspark 或 conda_glue_scala 图标以创建新的笔记本。
-
-
通过在您的代码前面的单元格中运行魔术命令来配置 Amazon Glue 会话。要查找所有可用的魔术命令,请在第一个单元格中运行
%help
。如果您尚未在~/.aws/configure
中配置它,则运行%iam_role
。 -
有关配置和使用交互式会话的更多信息,请参阅配置 Amazon Glue 交互式会话。