

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

# 从 Studi SageMaker o 或 Studio Classic 连接到 Amazon EMR 集群
<a name="connect-emr-clusters"></a>

数据科学家和数据工程师可以直接从 Studio 用户界面发现并连接到 Amazon EMR 集群。开始之前，请确保已按照 [步骤 4：设置权限以启用从 Studio 列出和启动 Amazon EMR 集群](studio-notebooks-set-up-emr-templates.md#studio-emr-permissions) 部分所述配置了必要的权限。这些权限赋予 Studio 创建、启动、查看、访问和终止集群的能力。

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

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

## 使用 Studio UI 连接到 Amazon EMR 集群
<a name="connect-emr-clusters-ui-options"></a>

要使用 Studio 或 Studio Classic 用户界面连接到您的集群，您可以从中访问的集群列表中启动连接[从 Studio 或 Studio Classic 列出 Amazon EMR 集群](discover-emr-clusters.md)，也可以从 SageMaker Studio 或 Studio Classic 中的笔记本启动连接。

**要通过 Studio 用户界面将 Amazon EMR 集群连接到新 JupyterLab 笔记本电脑，请执行以下操作：**

1. 在 Studio UI 的左侧面板中，选择左侧导航菜单中的**数据**节点。向下导航至 **Amazon EMR 应用程序和集群**。这将打开一个页面，列出可以从 Studio 的 **Amazon EMR 集群**标签访问的 Amazon EMR 集群。
**注意**  
如果您或您的管理员配置了允许跨账户访问 Amazon EMR 集群的权限，您就可以查看已授予 Studio 访问权限的所有账户的集群综合列表。

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

1. 
   + 选择要从中启动 JupyterLab应用程序的空间，然后选择 “**打开笔记本**”。这会从你选择的空间启动 JupyterLab 应用程序并打开一个新的笔记本。
**注意**  
Studio Classic 用户需要选择映像和内核。有关支持的映像列表，请参阅[支持从 Studio 或 Studio Classic 连接到 Amazon EMR 集群的映像和内核](studio-emr-user-guide.md#studio-notebooks-emr-cluster-connect-kernels)或[自带映像](studio-emr-user-guide.md#studio-notebooks-emr-byoi)。
   + 或者，您也可以选择模式窗口顶部的**创建新空间**按钮，创建一个新的专用空间。输入空间名称，然后选择**创建空间并打开笔记本**。这将创建一个具有默认实例类型和最新 SageMaker 发行映像的私有空间，启动 JupyterLab应用程序并打开新的笔记本。

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

   如果您选择的集群支持运行时角色，请选择 Amazon EMR 集群在运行作业时可承担的 IAM 角色名称。
**重要**  
要成功将 JupyterLab 笔记本连接到支持运行时角色的 Amazon EMR 集群，您必须先将运行时角色列表与您的域或用户配置文件相关联，如中所述。[在 Studio 中为 Amazon EMR 集群访问配置 IAM 运行时角色](studio-notebooks-emr-cluster-rbac.md)未完成此步骤将无法建立连接。

   选择后，连接命令会弹出笔记本的第一个单元格，并启动与 Amazon EMR 集群的连接。

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

**或者，您可以从 JupyterLab 或 Studio Classic 笔记本电脑连接到集群。**

1. 选择笔记本顶部的**集群**按钮。这会打开一个模式窗口，列出处于 `Running` 状态、可以访问的 Amazon EMR 集群。您可以在 **Amazon EMR 集群**选项卡中的 `Running` Amazon EMR 集群。
**注意**  
对于 Studio Classic 用户来说，只有在使用来自 [支持从 Studio 或 Studio Classic 连接到 Amazon EMR 集群的映像和内核](studio-emr-user-guide.md#studio-notebooks-emr-cluster-connect-kernels) 或 [自带映像](studio-emr-user-guide.md#studio-notebooks-emr-byoi) 的内核时，**集群**才会显示。如果您在笔记本顶部未看到**集群**，请确保您的管理员已[配置了集群的可发现性](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-configure-discoverability-emr-cluster.html)并切换到支持的内核。

1. 选择要连接到的集群，然后选择**连接**。

1. 如果您将 Amazon EMR 集群配置为支持[运行时 IAM 角色](studio-notebooks-emr-cluster-rbac.md)，则可以从 **Amazon EMR 执行角色**下拉菜单中选择您的角色。
**重要**  
要成功将 JupyterLab 笔记本连接到支持运行时角色的 Amazon EMR 集群，您必须先将运行时角色列表与您的域或用户配置文件相关联，如中所述。[在 Studio 中为 Amazon EMR 集群访问配置 IAM 运行时角色](studio-notebooks-emr-cluster-rbac.md)未完成此步骤将无法建立连接。

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

1. Studio 添加并运行代码块到活动单元格以建立连接。该单元包含连接神奇命令，用于根据身份验证类型将笔记本连接到应用程序。

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

## 使用连接命令连接到 Amazon EMR 集群
<a name="connect-emr-clusters-manually"></a>

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

建立连接时，可以使用 [Kerberos](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)、[Lightweight Directory Access Protocol (LDAP)](https://docs.aws.amazon.com/) 或[运行时 IAM 角色](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-emr-cluster-rbac.html)身份验证。您选择的验证方法取决于集群配置。

您可以参考此示例[在启用 Kerberos 的 Amazon EMR 集群上使用网络负载均衡器访问 Apache Livy](https://aws.amazon.com/blogs/big-data/access-apache-livy-using-a-network-load-balancer-on-a-kerberos-enabled-amazon-emr-cluster/) 来设置使用 Kerberos 身份验证的 Amazon EMR 集群。或者，您可以在 [a sagemaker-studio-emr](https://github.com/aws-samples/sagemaker-studio-emr/tree/main/cloudformation/getting_started) GitHub ws-samples/ 存储库中使用 Kerberos 或 LDAP 身份验证来浏览 CloudFormation 示例模板。

如果您的管理员启用了跨账户访问权限，则无论您的 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-id cluster_id \
  --auth-type Kerberos --language python 
  [--assumable-role-arn EMR_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-id cluster_id \
  --auth-type Basic_Access --language python 
  [--assumable-role-arn EMR_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-id cluster_id \
  --auth-type None --language python
  [--assumable-role-arn EMR_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 运行时角色](studio-notebooks-emr-cluster-rbac.md)。

  ```
  %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]
  ```

## 通过 HTTPS 连接到 Amazon EMR 集群。
<a name="connect-emr-clusters-ssl"></a>

如果您已将 Amazon EMR 集群配置为启用过境加密，并将 Apache Livy 服务器配置为 HTTPS，而且希望 Studio 或 Studio Classic 使用 HTTPS 与 Amazon EMR 通信，则需要配置 Studio 或 Studio Classic 以访问证书键。

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

1. 使用以下选项之一，将证书的 PEM 文件下载到本地文件系统：
   + Jupyter 的内置文件上传功能。
   + 笔记本单元。
   + (仅限 Studio Classic 用户）生命周期配置 (LCC) 脚本。

     有关如何使用 LCC 脚本的信息，请参阅[使用生命周期配置脚本自定义笔记本实例](https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html)。

1. 在连接命令的 `--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 集群](#connect-emr-clusters-manually)中找到可用于连接到 Amazon EMR 集群的命令列表。