从 SageMaker Studio 或 Studio Classic 连接至亚马逊EMR集群 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

从 SageMaker Studio 或 Studio Classic 连接至亚马逊EMR集群

数据科学家和数据工程师可以直接从 Studio 用户界面发现并连接到 Amazon EMR 集群。在开始之前,请确保已按照一第 4 步:设置权限以允许从 Studio 发布和启动亚马逊EMR集群节中所述配置了必要的权限。这些权限授予 Studio 创建、启动、查看、访问和终止集群的能力。

您可以直接从 Studio 用户界面将 Amazon EMR 集群连接到新 JupyterLab 笔记本电脑,也可以选择在正在运行的 JupyterLab 应用程序的笔记本中启动连接。

重要

您只能发现并连接到从私有空间启动的 Studio Classic 应用程序的 Amazon EMR 集群。 JupyterLab 确保 Amazon EMR 集群与您的 Studio 环境位于同一 Amazon 区域。您的 JupyterLab 空间必须使用 SageMaker 分发图片版本1.10或更高版本。

使用 Studio 用户界面连接到亚马逊EMR集群

要使用 Studio 或 Studio Classic 用户界面连接到您的集群,您可以从中访问的集群列表中启动连接列出 Studio 或 Studio 经典版中的亚马逊EMR集群,也可以从 SageMaker Studio 或 Studio Classic 中的笔记本启动连接。

要通过 Studio 用户界面将 Amazon EMR 集群连接到新 JupyterLab 笔记本电脑,请执行以下操作:
  1. 在 Studio 用户界面的左侧面板中,选择左侧导航菜单中的数据节点。向下导航到 Amazon EMR 应用程序和集群。这将打开一个页面,在 “亚马逊EMR集群” 选项卡中列出您可以从 Studio 访问的亚马逊EMR集群

    注意

    如果您或您的管理员已将权限配置为允许跨账户访问 Amazon EMR 集群,则可以查看已授权 Studio 访问权限的所有账户的集群的合并列表。

  2. 选择要连接到新笔记本的 Amazon EMR 集群,然后选择 “连接到笔记本”。这将打开一个显示 JupyterLab 空间列表的模态窗口。

    • 选择要从中启动 JupyterLab应用程序的空间,然后选择 “打开笔记本”。这会从你选择的空间启动 JupyterLab 应用程序并打开一个新的笔记本。

      注意

      Studio Classic 的用户需要选择镜像和内核。有关支持的映像列表,请参阅支持从 Studio 或 Studio Classic 连接到亚马逊EMR集群的映像和内核自带映像

    • 或者,您可以通过选择模式窗口顶部的 “创建新空间” 按钮来创建新的私有空间。输入空间的名称,然后选择创建空间并打开笔记本。这将创建一个具有默认实例类型和最新 SageMaker 发行映像的私有空间,启动 JupyterLab应用程序并打开新的笔记本。

  3. 如果您选择的集群不使用 Kerberos LDAP、或运行时角色身份验证,Studio 会提示您选择凭据类型。从 Http 基本身份验证没有凭证中进行选择,然后输入您的凭证(如果适用)。

    如果您选择的集群支持运行时角色,请选择您的 Amazon EMR 集群在IAM任务运行中可以担任的角色的名称。

    重要

    要成功将 JupyterLab 笔记本连接到支持运行时角色的 Amazon EMR 集群,您必须先将运行时角色列表与您的域或用户个人资料相关联,如中所述在 Studio 中为访问亚马逊EMR集群配置IAM运行时角色 。未能完成此步骤将使您无法建立连接。

    选择后,连接命令将填充笔记本的第一个单元格,并启动与 Ama EMR zon 集群的连接。

    连接成功后会显示一条消息,确认连接以及 Spark 应用程序的启动。

或者,您可以从 JupyterLab 或 Studio Classic 笔记本电脑连接到集群。
  1. 选择笔记本顶部的 “群集” 按钮。这将打开一个模式窗口,其中列出了处于您可以访问Running状态的 Amazon EMR 集群。您可以在 “Running亚马逊集EMR群” 选项卡中查看亚马逊EMR集群

    注意

    对于 Studio Classic 的用户,只有当您使用来自支持从 Studio 或 Studio Classic 连接到亚马逊EMR集群的映像和内核或来自的内核时,群集才可见自带映像。如果您在笔记本顶部未看到集群,请确保您的管理员已配置了集群的可发现性并切换到支持的内核。

  2. 选择要连接到的集群,然后选择连接

  3. 如果您将 Amazon EMR 集群配置为支持运行时IAM角色,则可以从 Amazon EMR 执行角色下拉菜单中选择您的角色。

    重要

    要成功将 JupyterLab 笔记本连接到支持运行时角色的 Amazon EMR 集群,您必须先将运行时角色列表与您的域或用户个人资料相关联,如中所述在 Studio 中为访问亚马逊EMR集群配置IAM运行时角色 。未能完成此步骤将使您无法建立连接。

    否则,如果您选择的集群不使用 Kerberos、或运行时角色身份验证LDAP,Studio 或 Studio Classic 会提示您选择凭据类型。您可以选择HTTP基本身份验证无凭据

  4. Studio 向活动单元添加并运行代码块以建立连接。此单元包含连接魔法命令,用于根据您的身份验证类型将笔记本电脑连接到应用程序。

    连接成功后会显示一条消息,确认连接以及 Spark 应用程序的启动。

使用连接命令连接到 Amazon EMR 集群

要建立与 Amazon EMR 集群的连接,您可以在笔记本单元中执行连接命令。

建立连接时,可以使用 Kerberos轻型目录访问协议 (LDAP)运行时IAM角色身份验证进行身份验证。您选择的身份验证方法取决于您的集群配置。

你可以参考这个示例,在支持 Kerberos 的亚马逊EMR集群上使用网络负载均衡器访问 Apache Livy,设置使用 Kerberos 身份验证的EMR亚马逊集群。或者,您可以使用 Kerberos 或在 aw sagemaker-studio-emr GitHub s-samples/ 存储库中LDAP进行身份验证来浏览 CloudFormation 示例模板。

如果您的管理员启用了跨账户访问权限,则无论您的 Studio Classic 应用程序和EMR集群位于同一个账户还是不同的 Amazon 账户中,您都可以从 Studio Classic 笔记本电脑连接到您的 Amazon 集群。

对于以下每种身份验证类型,使用指定的命令从 Studio 或 Studio Classic 笔记本电脑连接到您的集群。

  • Kerberos

    如果您需要跨账户 Ama EMR zon 访问权限,请附加--assumable-role-arn参数。如果您使用连接到集群,请附加--verify-certificate参数。HTTPS

    %load_ext sagemaker_studio_analytics_extension.magics %sm_analytics emr connect --cluster-id cluster_id \ --auth-type Kerberos --language python [--assumable-role-arn EMR_access_role_ARN ] [--verify-certificate /home/user/certificateKey.pem]
  • LDAP

    如果您需要跨账户 Ama EMR zon 访问权限,请附加--assumable-role-arn参数。如果您使用连接到集群,请附加--verify-certificate参数。HTTPS

    %load_ext sagemaker_studio_analytics_extension.magics %sm_analytics emr connect --cluster-id cluster_id \ --auth-type Basic_Access --language python [--assumable-role-arn EMR_access_role_ARN ] [--verify-certificate /home/user/certificateKey.pem]
  • NoAuth

    如果您需要跨账户 Ama EMR zon 访问权限,请附加--assumable-role-arn参数。如果您使用连接到集群,请附加--verify-certificate参数。HTTPS

    %load_ext sagemaker_studio_analytics_extension.magics %sm_analytics emr connect --cluster-id cluster_id \ --auth-type None --language python [--assumable-role-arn EMR_access_role_ARN ] [--verify-certificate /home/user/certificateKey.pem]
  • 运行时IAM角色

    如果您需要跨账户 Ama EMR zon 访问权限,请附加--assumable-role-arn参数。如果您使用连接到集群,请附加--verify-certificate参数。HTTPS

    有关使用运行时IAM角色连接到 Amazon EMR 集群的更多信息,请参阅在 Studio 中为访问亚马逊EMR集群配置IAM运行时角色

    %load_ext sagemaker_studio_analytics_extension.magics %sm_analytics emr connect --cluster-id cluster_id \ --auth-type Basic_Access \ --emr-execution-role-arn arn:aws:iam::studio_account_id:role/emr-execution-role-name [--assumable-role-arn EMR_access_role_ARN] [--verify-certificate /home/user/certificateKey.pem]

通过 Connect 连接到亚马逊EMR集群 HTTPS

如果您已将亚马逊EMR集群配置为启用传输加密和 Apache Livy 服务器,并希望 Studio 或 Studio Classic EMR 使用与亚马逊通信HTTPS,则需要配置 Studio 或 Studio Classic 才能访问您的证书密钥。HTTPS

对于自签名证书或本地证书颁发机构 (CA) 签名证书,您可以通过两个步骤完成此操作:

  1. 使用以下选项之一将证书文件下载到本地文件系统:PEM

  2. 在连接命令的 --verify-certificate 参数中,通过提供证书的路径来启用证书的验证。

    %sm_analytics emr connect --cluster-id cluster_id \ --verify-certificate /home/user/certificateKey.pem ...

对于公共 CA 颁发的证书,请将 --verify-certificate 参数设置为 true 来设置证书验证。

或者,您可以通过将 --verify-certificate 参数设置为 false 来禁用证书验证。

您可以在中找到 Amazon EMR 集群的可用连接命令列表使用连接命令连接到 Amazon EMR 集群