设置与 Amazon EMR 集群的连接 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

设置与 Amazon EMR 集群的连接

Amazon EMR 是一个用于处理大量数据的大数据平台。Amazon EMR 的核心组件是集群。集群是 Amazon EC2 实例的集合。Apache Spark 是一个在亚马逊 EMR 上运行的分布式处理框架。有关更多信息,请参阅 。什么是 Amazon EMR?Apache Spark.

Amazon SageMaker 工作室配备了一个包含 PySpark 内核的 SageMagic 图像。闪光魔术图像还包含Amazon CLI实用程序,sm-sparkmagic,您可以使用它创建 PySpark 内核连接到 Amazon EMR 群集所需的配置文件。创建配置文件后,实用程序将显示完成安装所需的步骤。

为了提高安全性,您可以指定到 EMR 群集的连接使用 Kerberos 身份验证。有关更多信息,请参阅使用 Kerberos 身份验证

Prerequisites

  • 访问设置为使用亚马逊 VPC 模式的 SageMaker 工作室。要连接到亚马逊 EMR,Studio 必须配置为仅亚马逊 VPC 模式。有关更多信息,请参阅将 SageMaker Studio 笔记本 Connect 到 VPC 中的资源。SageMaker Studio 使用的所有子网必须是专用子网。

  • 如果您将sm-sparkmagic实用程序配置 sparkmagic 内核,请确保 VPC 接口终端节点连接到 SageMaker Studio 使用的所有子网,或确保 SageMaker Studio 使用的所有子网都被路由为使用 NAT 网关。有关更多信息,请参阅 。NAT 网关.

  • 与 Studio 位于同一 VPC 中的 Amazon EMR 集群,或者位于与 Studio 连接到相同 VPC 的 VPC 中。此群集必须安装了 Spark 和 Livy。

  • 用于 Amazon SageMaker 工作室和亚马逊 EMR 安全组的安全组必须允许彼此之间的访问。

  • 您的亚马逊 EMR 安全组必须打开端口 8998,以便 Amazon SageMaker 工作室可以通过 Livy 与 Spark 集群进行通信。有关设置安全组的更多信息,请参阅在亚马逊 EMR 中构建由 Spark 提供支持的 SageMaker 笔记本电脑.

  • 如果您将sm-sparkmagic实用程序,则与 Studio 用户配置文件关联的 IAM 执行角色必须包含以下额外权限。要查找执行角色,请在 SageMaker Studio 控制面板中选择您的用户名。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:DescribeSecurityConfiguration", "elasticmapreduce:ListInstances" ], "Resource": [ "arn:aws:elasticmapreduce:*:*:cluster/*" ] } ] }

设置到 EMR 集群的连接

  1. 打开 SageMaker Studio。

  2. 在 Studio 的左上角,选择Amazon SageMaker Studio以打开 Studio 启动器。

  3. 在存储库的启动程序页面上,选择笔记本电脑和计算资源.

  4. 适用于选择 SageMaker 映像中,选择闪光魔术映像。

  5. 选择笔记本在 SparkMagic 图像中创建一个工作室笔记本电脑。

  6. 在笔记本单元中运行以下代码,以创建用于连接到 EMR 群集的配置文件。%%local可确保代码在本地映像中运行,而不是在 Spark 上运行。

    注意

    这些区域有:sm-sparkmagic实用程序不支持生成配置文件,当您的 Amazon EMR 集群和 Studio Domain 使用两个不同的亚马逊 VPC,并且亚马逊 VPC 具有不同的DHCPOptions.

    • 如果 EMR 群集未配置为 Kerberos 身份验证,请运行以下命令:

      %%local ! sm-sparkmagic connect --cluster-id "cluster-id"

      该输出值应该类似于以下内容:

      Successfully read emr cluster(cluster-id) details SparkMagic config file location: /etc/sparkmagic/config.json
    • 如果 EMR 群集配置为 Kerberos 身份验证,请运行以下命令:

      ! sm-sparkmagic connect --cluster-id "cluster-id" --user-name "user-name"

      该输出值应该类似于以下内容:

      Successfully read emr cluster(cluster-id) details SparkMagic config file location: /etc/sparkmagic/config.json Kerberos configuration file location: /etc/krb5.conf
  7. 要完成设置,请执行以下操作之一:

    • 对于未配置为 Kerberos 身份验证的 EMR 群集,请转到步骤 8。

    • 对于配置为 Kerberos 身份验证的 EMR 群集,请执行以下操作:

      1. 在笔记本工具栏中,选择启动终端图标( ),以便在与笔记本相同的 SparkMagic 图像中打开终端。

      2. 在终端中运行以下命令以获取 Kerberos 票证:

        kinit user-name
      3. 出现提示时请输入密码。

  8. 在笔记本工具栏中,选择重新启动内核图标( ) 以完成设置。

  9. 要验证连接设置正确无误,请在笔记本单元格中运行以下命令:

    %%info

    该输出值应该类似于以下内容:

    Current session configs:{'driverMemory': '1000M', 'executorCores': 2, 'kind': 'pyspark'} No active sessions.