从 SageMaker Studio 或 Studio Classic 连接到 Amazon EMR 集群
数据科学家和数据工程师可以直接从 Studio 用户界面发现并连接到 Amazon EMR 集群。开始之前,请确保已按照 步骤 4:设置权限以启用从 Studio 列出和启动 Amazon EMR 集群 部分所述配置了必要的权限。这些权限赋予 Studio 创建、启动、查看、访问和终止集群的能力。
您可以直接从 Studio UI 将 Amazon EMR 集群连接到新的 JupyterLab Notebook,也可以选择在运行中的 JupyterLab 应用程序的笔记本中启动连接。
重要
您只能为从专用空间启动的 JupyterLab 和 Studio Classic 应用程序发现和连接 Amazon EMR 集群。确保 Amazon EMR 集群与您的 Studio 环境位于同一 AWS 区域。您的 JupyterLab 空间必须使用 1.10 或更高版本的 SageMaker Distribution 映像。
使用 Studio UI 连接到 Amazon EMR 集群
要使用 Studio 或 Studio Classic 用户界面连接集群,可以从 从 Studio 或 Studio Classic 列出 Amazon EMR 集群 中访问的集群列表或 SageMaker Studio 或 Studio Classic 中的笔记本启动连接。
从 Studio UI 将 Amazon EMR 集群连接到新的 JupyterLab Notebook:
-
在 Studio UI 的左侧面板中,选择左侧导航菜单中的数据节点。向下导航至 Amazon EMR 应用程序和集群。这将打开一个页面,列出可以从 Studio 的 Amazon EMR 集群标签访问的 Amazon EMR 集群。
注意
如果您或您的管理员配置了允许跨账户访问 Amazon EMR 集群的权限,您就可以查看已授予 Studio 访问权限的所有账户的集群综合列表。
-
选择要连接到新笔记本的 Amazon EMR 集群,然后选择附加到笔记本。这会打开一个模式窗口,显示您的 JupyterLab 空间列表。
-
-
选择要启动 JupyterLab 应用程序的空间,然后选择打开笔记本。这将从您选择的空间启动一个 JupyterLab 应用程序,并打开一个新笔记本。
注意
Studio Classic 用户需要选择映像和内核。有关支持的映像列表,请参阅支持从 Studio 或 Studio Classic 连接到 Amazon EMR 集群的映像和内核或自带映像。
-
或者,您也可以选择模式窗口顶部的创建新空间按钮,创建一个新的专用空间。输入空间名称,然后选择创建空间并打开笔记本。这会创建一个具有默认实例类型和最新 SageMaker 分发映像的专用空间,启动 JupyterLab 应用程序,并打开一个新笔记本。
-
-
如果您选择的集群不使用 Kerberos、LDAP 或运行时角色身份验证,Studio 会提示您选择凭证类型。从 Http 基本身份验证或没有凭证中进行选择,然后输入您的凭证(如果适用)。
如果您选择的集群支持运行时角色,请选择 Amazon EMR 集群在运行作业时可承担的 IAM 角色名称。
重要
要将 JupyterLab Notebook 成功连接到支持运行时角色的 Amazon EMR 集群,首先必须将运行时角色列表与域或用户配置文件关联起来,如 在 Studio 中为 Amazon EMR 集群访问配置 IAM 运行时角色 所述。未完成此步骤将无法建立连接。
选择后,连接命令会弹出笔记本的第一个单元格,并启动与 Amazon EMR 集群的连接。
连接成功后会显示一条消息,确认连接以及 Spark 应用程序的启动。
或者,也可以通过 JupyterLab 或 Studio Classic 笔记本连接到集群。
-
选择笔记本顶部的集群按钮。这会打开一个模式窗口,列出处于
Running状态、可以访问的 Amazon EMR 集群。您可以在 Amazon EMR 集群选项卡中的RunningAmazon EMR 集群。注意
对于 Studio Classic 用户来说,只有在使用来自 支持从 Studio 或 Studio Classic 连接到 Amazon EMR 集群的映像和内核 或 自带映像 的内核时,集群才会显示。如果您在笔记本顶部未看到集群,请确保您的管理员已配置了集群的可发现性并切换到支持的内核。
-
选择要连接到的集群,然后选择连接。
-
如果您将 Amazon EMR 集群配置为支持运行时 IAM 角色,则可以从 Amazon EMR 执行角色下拉菜单中选择您的角色。
重要
要将 JupyterLab Notebook 成功连接到支持运行时角色的 Amazon EMR 集群,首先必须将运行时角色列表与域或用户配置文件关联起来,如 在 Studio 中为 Amazon EMR 集群访问配置 IAM 运行时角色 所述。未完成此步骤将无法建立连接。
否则,如果您选择的集群不使用 Kerberos、LDAP 或运行时角色身份验证,Studio 或 Studio Classic 会提示您选择凭证类型。您可以选择 HTTP 基本身份验证或没有凭证。
-
Studio 添加并运行代码块到活动单元格以建立连接。该单元包含连接神奇命令,用于根据身份验证类型将笔记本连接到应用程序。
连接成功后会显示一条消息,确认连接以及 Spark 应用程序的启动。
使用连接命令连接到 Amazon EMR 集群
要建立与 Amazon EMR 集群的连接,可以在笔记本单元格中执行连接命令。
建立连接时,可以使用 Kerberos、Lightweight Directory Access Protocol (LDAP) 或运行时 IAM 角色身份验证。您选择的验证方法取决于集群配置。
您可以参考此示例在启用 Kerberos 的 Amazon EMR 集群上使用网络负载均衡器访问 Apache Livy
如果管理员已启用跨账户访问,则无论 Studio Classic 应用程序和集群位于同一 AWS 账户还是不同账户,您都可以从 Studio Classic 笔记本连接到 Amazon EMR 集群。
对于以下每种身份验证类型,请使用指定命令从 Studio 或 Studio Classic 笔记本连接到集群。
-
Kerberos
如果您需要跨账户的 Amazon EMR 访问权限,请附加
--assumable-role-arn参数。如果您使用 HTTPS 连接到集群,请附加--verify-certificate参数。%load_ext sagemaker_studio_analytics_extension.magics %sm_analytics emr connect --cluster-idcluster_id\ --auth-type Kerberos --language python [--assumable-role-arnEMR_access_role_ARN] [--verify-certificate/home/user/certificateKey.pem] -
LDAP
如果您需要跨账户的 Amazon EMR 访问权限,请附加
--assumable-role-arn参数。如果您使用 HTTPS 连接到集群,请附加--verify-certificate参数。%load_ext sagemaker_studio_analytics_extension.magics %sm_analytics emr connect --cluster-idcluster_id\ --auth-type Basic_Access --language python [--assumable-role-arnEMR_access_role_ARN] [--verify-certificate/home/user/certificateKey.pem] -
NoAuth
如果您需要跨账户的 Amazon EMR 访问权限,请附加
--assumable-role-arn参数。如果您使用 HTTPS 连接到集群,请附加--verify-certificate参数。%load_ext sagemaker_studio_analytics_extension.magics %sm_analytics emr connect --cluster-idcluster_id\ --auth-type None --language python [--assumable-role-arnEMR_access_role_ARN] [--verify-certificate/home/user/certificateKey.pem] -
运行时系统 IAM 角色
如果您需要跨账户的 Amazon EMR 访问权限,请附加
--assumable-role-arn参数。如果您使用 HTTPS 连接到集群,请附加--verify-certificate参数。有关使用运行时系统 IAM 角色连接到 Amazon EMR 集群的更多信息,请参阅在 Studio 中为 Amazon EMR 集群访问配置 IAM 运行时角色 。
%load_ext sagemaker_studio_analytics_extension.magics %sm_analytics emr connect --cluster-idcluster_id\ --auth-type Basic_Access \ --emr-execution-role-arn arn:aws:iam::studio_account_id:role/emr-execution-role-name[--assumable-role-arnEMR_access_role_ARN] [--verify-certificate/home/user/certificateKey.pem]
通过 HTTPS 连接到 Amazon EMR 集群。
如果您已将 Amazon EMR 集群配置为启用过境加密,并将 Apache Livy 服务器配置为 HTTPS,而且希望 Studio 或 Studio Classic 使用 HTTPS 与 Amazon EMR 通信,则需要配置 Studio 或 Studio Classic 以访问证书键。
对于自签名证书或本地证书颁发机构 (CA) 签名证书,您可以通过两个步骤完成此操作:
-
使用以下选项之一,将证书的 PEM 文件下载到本地文件系统:
-
Jupyter 的内置文件上传功能。
-
笔记本单元。
-
(仅限 Studio Classic 用户)生命周期配置 (LCC) 脚本。
有关如何使用 LCC 脚本的信息,请参阅使用生命周期配置脚本自定义笔记本实例。
-
-
在连接命令的
--verify-certificate参数中,通过提供证书的路径来启用证书的验证。%sm_analytics emr connect --cluster-idcluster_id\ --verify-certificate/home/user/certificateKey.pem...
对于公共 CA 颁发的证书,请将 --verify-certificate 参数设置为 true 来设置证书验证。
或者,您可以通过将 --verify-certificate 参数设置为 false 来禁用证书验证。
您可以在使用连接命令连接到 Amazon EMR 集群中找到可用于连接到 Amazon EMR 集群的命令列表。