

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

# 快速入门：创建 A SageMaker I 沙盒域以在 Studio 中启动 Amazon EMR 集群
<a name="studio-notebooks-emr-cluster-quickstart"></a>

本节将引导您完成在 Amazon SageMaker Studio 中快速设置完整测试环境的过程。您将创建一个新的 Studio 域，让用户可以直接从 Studio 启动新的 Amazon EMR 集群。该步骤提供了一个笔记本示例，您可以连接到 Amazon EMR 集群，开始运行 Spark 工作负载。使用此笔记本，您将使用 Amazon EMR Spark 分布式处理 OpenSearch 和矢量数据库构建检索增强生成系统 (RAG)。

**注意**  
要开始使用，请使用具有管理员权限的 AWS Identity and Access Management (IAM) 用户账户登录 AWS 管理控制台。有关如何注册 AWS 账户并创建具有管理权限的用户的信息，请参阅 [完成 Amazon A SageMaker I 先决条件](gs-set-up.md)。

**设置 Studio 测试环境并开始运行 Spark 作业：**
+ [第 1 步：创建用于在 Studio 中启动亚马逊 EMR 集群的 A SageMaker I 域](#studio-notebooks-emr-cluster-quickstart-setup)
+ [步骤 2：从 Studio UI 启动新的 Amazon EMR 集群](#studio-notebooks-emr-cluster-quickstart-launch)
+ [第 3 步：将 JupyterLab 笔记本电脑连接到 Amazon EMR 集群](#studio-notebooks-emr-cluster-quickstart-connect)
+ [第 4 步：清理 CloudFormation 堆栈](#studio-notebooks-emr-cluster-quickstart-clean-stack)

## 第 1 步：创建用于在 Studio 中启动亚马逊 EMR 集群的 A SageMaker I 域
<a name="studio-notebooks-emr-cluster-quickstart-setup"></a>

在以下步骤中，您将应用 CloudFormation 堆栈来自动创建新的 SageMaker AI 域。堆栈还会创建用户配置文件，并配置所需的环境和权限。 SageMaker AI 域配置为允许您直接从 Studio 启动亚马逊 EMR 集群。在本示例中，Amazon EMR 集群是在与 A SageMaker I 相同的 AWS 账户中创建的，无需身份验证。[你可以在 getting\$1start CloudFormation ing\$1started 存储库中找到支持各种身份验证方法的其他堆栈，比如 Kerberos。](https://github.com/aws-samples/sagemaker-studio-emr/tree/main/cloudformation/getting_started) GitHub 

**注意**  
SageMaker 默认情况下，AI 允许每个 AWS 账户使用 5 个 Studio 域名。 AWS 区域 在创建堆栈之前，请确保您的账户在您所在区域的域数不超过 4 个。

**按照以下步骤设置 SageMaker AI 域，以便从 Studio 启动亚马逊 EMR 集群。**

1. 从`sagemaker-studio-emr` GitHub存储库下载此[CloudFormation 模板](https://github.com/aws-samples/sagemaker-studio-foundation-models/blob/main/workshop-artifacts/cfn/workshop-cfn.yaml)的原始文件。

1. 进入 CloudFormation 控制台：[https://console.aws.amazon.com/](https://console.aws.amazon.com/cloudformation/)cloudformation

1. 选择**创建堆栈**，并从下拉菜单中选择**使用新资源（标准）**。

1. 在**步骤 1** 中：

   1. 在**准备模板**部分，选择**选择现有模板**。

   1. 在**指定模板**部分，选择**上传模板文件**。

   1. 上传下载的 CloudFormation 模板并选择 “**下一步**”。

1. 在**步骤 2** 中，输入**堆栈名称**，**SageMakerDomainName**然后选择 Ne **xt**。

1. 在**步骤 3** 中，保留所有默认值并选择**下一步**。

1. 在**步骤 4** 中，选中确认资源创建的复选框，然后选择**创建堆栈**。这将在您的账户和区域中创建一个 Studio 域。

## 步骤 2：从 Studio UI 启动新的 Amazon EMR 集群
<a name="studio-notebooks-emr-cluster-quickstart-launch"></a>

在以下步骤中，您将从 Studio UI 创建一个新的 Amazon EMR 集群。

1. 前往 A SageMaker I 控制台 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)，在左侧菜单中选择**域名**。

1. 点击您的域名**生成器AIDomain**以打开**域名详情**页面。

1. 从用户配置文件 `genai-user` 启动 Studio。

1. 在左侧导航窗格中，转到**数据**然后转到 **Amazon EMR 集群**。

1. 在 Amazon EMR 集群页面上，选择**创建**。**选择堆栈创建的 **SageMaker Studio Domain No Auth EMR** 模板 CloudFormation ，然后选择 “下一步”。**

1. 输入新 Amazon EMR 集群的名称。可选择更新其他参数，如核心节点和主节点的实例类型、空闲超时或核心节点数量。

1. 选择**创建资源**，启动新的 Amazon EMR 集群。

   创建 Amazon EMR 集群后，请查看 **EMR 集群**页面上的状态。当状态更改为 `Running/Waiting` 时，您的 Amazon EMR 集群就可以在 Studio 中使用了。

## 第 3 步：将 JupyterLab 笔记本电脑连接到 Amazon EMR 集群
<a name="studio-notebooks-emr-cluster-quickstart-connect"></a>

在以下步骤中 JupyterLab ，您将笔记本连接到正在运行的 Amazon EMR 集群。在本示例中，您导入了一个笔记本，允许您使用 Amazon EMR Spark 分布式处理 OpenSearch 和矢量数据库构建检索增强生成 (RAG) 系统。

1. 

**启动 JupyterLab**

   在 Studio 中，启动 JupyterLab 应用程序。

1. 

**创建专用空间**

   如果您尚未为 JupyterLab 应用程序创建空间，请选择**创建 JupyterLab 空间**。输入空间名称，并将空间保留为**专用**。将所有其他设置保留为默认值，然后选择**创建空间**。

   否则，请运行您的 JupyterLab 空间来启动 JupyterLab应用程序。

1. 

**部署 LLM 和嵌入模型进行推理**
   + 从顶部菜单中选择**文件**、**新建**，然后选择** 终端**。
   + 在终端运行以下命令。

     ```
     wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-00-setup/Lab_0_Warm_Up_Deploy_EmbeddingModel_Llama2_on_Nvidia.ipynb
     mkdir AWSGuides
     cd AWSGuides
     wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/AWSGuides/AmazonSageMakerDeveloperGuide.pdf
     wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/AWSGuides/EC2DeveloperGuide.pdf
     wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/AWSGuides/S3DeveloperGuide.pdf
     ```

     这会将 `Lab_0_Warm_Up_Deploy_EmbeddingModel_Llama2_on_Nvidia.ipynb` 笔记本检索到本地目录，并将三个 PDF 文件下载到本地 `AWSGuides` 文件夹。
   + 打开 `lab-00-setup/Lab_0_Warm_Up_Deploy_EmbeddingModel_Llama2_on_Nvidia.ipynb`，保留 `Python 3 (ipykernel)` 内核，运行每个单元。
**警告**  
在 **Llama 2 权限协议**部分，确保在继续之前接受 Llama2 EULA。  
笔记本在 `ml.g5.2xlarge` 上部署了两个模型 `Llama 2` 和 `all-MiniLM-L6-v2 Models` 进行推理。

     部署模型和创建端点可能需要一些时间。

1. 

**打开主笔记本**

   在中 JupyterLab，打开终端并运行以下命令。

   ```
   cd ..
   wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb
   ```

   您应该会在的左侧面板中看到额外的`Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb`笔记本电脑 JupyterLab。

1. 

**选择一个 `PySpark` 内核**

   打开 `Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb` 笔记本，确保正在使用 `SparkMagic PySpark` 内核。您可以在笔记本右上角切换内核。选择当前内核名称，打开内核选择模式，然后选择 `SparkMagic PySpark`。

1. 

**将笔记本连接到集群**

   1. 在笔记本右上方，选择**集群**。此操作将打开一个模式窗口，列出您有权访问的所有正在运行的集群。

   1. 选择集群，然后选择**连接**。打开一个新的凭证类型选择模式窗口。

   1. 选择**无凭证**，然后选择**连接**。  
![\[该模式显示了为笔记本电脑选择的 Amazon EMR 凭证。 JupyterLab\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-credential-selection.png)

   1. 笔记本单元自动填充并运行。笔记本单元会加载 `sagemaker_studio_analytics_extension.magics` 扩展，提供连接 Amazon EMR 集群的功能。然后，它会使用 `%sm_analytics` 神奇命令启动与 Amazon EMR 集群和 Spark 应用程序的连接。
**注意**  
确保与 Amazon EMR 集群的连接字符串的身份验证类型设置为 `None`。下面示例中的 `--auth-type None` 值就说明了这一点。如有必要，您可以修改该字段。  

      ```
      %load_ext sagemaker_studio_analytics_extension.magics
      %sm_analytics emr connect --verify-certificate False --cluster-id your-cluster-id --auth-type None --language python
      ```

   1. 成功建立连接后，连接单元格输出信息将显示 `SparkSession` 详细信息，包括集群 ID、`YARN` 应用程序 ID 以及指向监控您的 Spark 作业的 Spark UI 的链接。

您可以使用 `Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb` 笔记本了。此示例笔记本运行分布式 PySpark 工作负载，用于使用 LangChain 和 OpenSearch构建 RAG 系统。

## 第 4 步：清理 CloudFormation 堆栈
<a name="studio-notebooks-emr-cluster-quickstart-clean-stack"></a>

完成后，确保终止两个端点并删除 CloudFormation 栈，以防继续收费。删除堆栈会清除堆栈供应的所有资源。

**在使用完 CloudFormation 堆栈后将其删除**

1. 进入 CloudFormation 控制台：[https://console.aws.amazon.com/](https://console.aws.amazon.com/cloudformation/)cloudformation

1. 选择要删除的堆栈。您可以按名称搜索，或在堆栈列表中查找。

1. 单击**删除**按钮最终删除堆栈，然后再次单击**删除**确认将删除堆栈创建的所有资源。

   等待堆栈删除完成。这可能需要几分钟时间。 CloudFormation 会自动清理堆栈模板中定义的所有资源。

1. 确认堆栈创建的所有资源都已被删除。例如，检查是否有剩余的 Amazon EMR 集群。

**要移除模型的 API 端点**

1. 前往 A SageMaker I 控制台:[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. 在左侧导航窗格中，选择**推理**，然后选择**端点**。

1. 选择端点 `hf-allminil6v2-embedding-ep`，然后在**操作**下拉列表中选择**删除**。对端点 `meta-llama2-7b-chat-tg-ep` 重复上述步骤。