与 SageMaker 笔记本搭配使用交互式会话 - Amazon Glue
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

与 SageMaker 笔记本搭配使用交互式会话

要与 SageMaker 笔记本配合运行使用交互式会话,请按照以下步骤创建新的生命周期配置和 SageMaker 笔记本实例。

在现有 SageMaker 笔记本实例上安装

注意

目前不支持在现有 SageMaker 笔记本实例上安装交互式会话。尽管生命周期配置可以在现有 SageMaker 笔记本实例上运行,但在现有 SageMaker 笔记本实例上安装交互式会话将会修改 kernelspec 管理器类,这可能会导致其他工作负载出现问题。

使用交互式会话创建新的生命周期配置和 SageMaker 笔记本实例

SageMaker 控制台设置

  1. 创建生命周期配置。

    1. 在 SageMaker 控制台上打开 Lifecycle configurations(生命周期配置)页面。

      
                    屏幕截图显示选定的 Lifecycle configurations(生命周期配置)选项。
    2. 请选择 Create Configuration (创建配置)

    3. Name(名称)字段中,键入“AWSGlueInteractiveSessionsPreview”。

      
                    屏幕截图显示 Create lifecycle configuration(创建生命周期配置)页面。
    4. 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 enviornment" 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 # Add Service Model to botocore. This will be removed with next CM. echo "Copying Service Model to botocore" cp ${ANACONDA_DIR}/envs/glue_pyspark/lib/python3.7/site-packages/aws_glue_interactive_sessions_kernel/service-2.json ${ANACONDA_DIR}/envs/glue_pyspark/lib/python3.7/site-packages/botocore/data/glue/2017-03-31/service-2.json # 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_python_kernel/ ${ANACONDA_DIR}/envs/glue_pyspark/share/jupyter/kernels/glue_python_kernel/ echo "Copying Glue Scala 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_scala_kernel/ ${ANACONDA_DIR}/envs/glue_scala/share/jupyter/kernels/glue_scala_kernel/ 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 restart jupyter-server
  2. 使用新的生命周期配置创建 SageMaker 笔记本实例。

    1. 选择 Notebook instance(笔记本实例)。

      
                    屏幕截图显示选择的 Notebook instances(笔记本实例)选项。
    2. 选择创建笔记本实例

    3. 在“Notebook instance name”(笔记本实例名称)字段中输入一个名称。

      
                    屏幕截图显示 Create notebook instance(创建笔记本实例)页面。
    4. 选择“notebook-al2-v1”作为 Platform identifier(平台标识符)。

    5. 选择 Additional configuration(其他配置)以显示 Lifecycle configuration - optional(生命周期配置 - 可选)下拉菜单。

    6. 选择 Amazon GlueInteractiveSessionsPreview

    7. Permissions and encryption(权限和加密)部分中,选择拥有运行 Amazon Glue 交互式会话所需权限的 IAM 角色。有关更多信息,请参阅使用 IAM 保护 Amazon Glue 交互式会话的安全

    8. 视需要选择其他选项。完成后,选择 Create notebook instance(创建笔记本实例)。

  3. 在 SageMaker 笔记本实例上启动交互式会话。

    1. 笔记本预置完成后,在“Notebook instances”(笔记本实例)页面上选择 Jupyter Lab

    2. Notebook(笔记本)部分选择 conda_glue_pysparkconda_glue_scala 图标以创建新的笔记本。

      
                    屏幕截图显示 Create notebook instance(创建笔记本实例)页面。
  4. 通过在您的代码前面的单元格中运行魔术命令来配置 Amazon Glue 会话。要查找所有可用的魔术命令,请在第一个单元格中运行 %help。如果您尚未在 ~/.aws/configure 中配置它,则运行 %iam_role

  5. 有关配置和使用交互式会话的更多信息,请参阅配置 Amazon Glue 交互式会话