

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 從 SageMaker Studio 或 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 建立、啟動、檢視、存取和終止叢集的能力。

您可以將 Amazon EMR 叢集直接從 Studio UI 連線至新的 JupyterLab 筆記本，或選擇在執行中 JupyterLab 應用程式的筆記本中啟動連線。

**重要**  
您只能探索並連線至從私有空間啟動的 JupyterLab 和 Studio Classic 應用程式的 Amazon EMR 叢集。確保 Amazon EMR 叢集與您的 Studio 環境位於相同的 AWS 區域。您的 JupyterLab 空間必須使用 SageMaker Distribution 映像版本 `1.10` 或更高版本。

## 使用 Studio UI 連線至 Amazon EMR 叢集
<a name="connect-emr-clusters-ui-options"></a>

若要使用 Studio 或 Studio Classic UI 連線至您的叢集，您可以從 [從 Studio 或 Studio Classic 列出 Amazon EMR 叢集](discover-emr-clusters.md) 中存取的叢集清單或從 SageMaker Studio 或 Studio Classic 中的筆記本啟動連線。

**若要從 Studio UI 將 Amazon EMR 叢集連線至新的 JupyterLab 筆記本：**

1. 在 Studio UI 的左側面板中，選取左側導覽功能表中的**資料**節點。向下導覽至 **Amazon EMR 應用程式和叢集**。這會開啟一個頁面，在 **Amazon EMR 叢集**索引標籤中列出您可以從 Studio 存取的 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 Distribution 映像的私有空間、啟動 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)、[輕量型目錄存取通訊協定 (LDAP)](https://docs.aws.amazon.com/) 或[執行時期 IAM 角色](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-emr-cluster-rbac.html)驗證進行驗證。您選擇的驗證方法取決於您的叢集組態。

您可以參考此範例[在啟用 Kerberos 的 Amazon EMR 叢集上使用 Network Load Balancer 存取 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 叢集。或者，您可以在 [aws-samples/sagemaker-studio-emr](https://github.com/aws-samples/sagemaker-studio-emr/tree/main/cloudformation/getting_started) GitHub 儲存庫中探索使用 Kerberos 或 LDAP 驗證的 CloudFormation 範例範本。

如果您的管理員已啟用跨帳戶存取，您可以從 Studio Classic 筆記本連線至 Amazon EMR 叢集，無論您的 Studio Classic 應用程式和叢集位於相同的 AWS 帳戶或不同的帳戶中。

對於以下每種驗證類型，請使用指定的命令從 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 叢集設定為啟用傳輸加密，以及為 HTTPS 設定了 Apache Livy 伺服器，並希望 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 叢集的可用連線命令清單。