從 SageMaker Studio 或 Studio Classic 連線至 Amazon EMR 叢集 - Amazon SageMaker AI

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

從 SageMaker Studio 或 Studio Classic 連線至 Amazon EMR 叢集

資料科學家和資料工程師可以直接從 Studio 使用者介面探索 Amazon EMR 叢集,然後連線至其中。開始之前,請確定您已如 步驟 4:設定許可,以啟用從 Studio 列出和啟動 Amazon EMR 叢集 一節所述設定必要的許可。這些許可授予 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 叢集

若要使用 Studio 或 Studio Classic UI 連線至您的叢集,您可以從 從 Studio 或 Studio Classic 列出 Amazon EMR 叢集 中存取的叢集清單或從 SageMaker Studio 或 Studio Classic 中的筆記本啟動連線。

若要從 Studio UI 將 Amazon EMR 叢集連線至新的 JupyterLab 筆記本:
  1. 在 Studio UI 的左側面板中,選取左側導覽功能表中的資料節點。向下導覽至 Amazon EMR 應用程式和叢集。這會開啟一個頁面,在 Amazon EMR 叢集索引標籤中列出您可以從 Studio 存取的 Amazon EMR 叢集。

    注意

    如果您或您的管理員已設定允許跨帳戶存取 Amazon EMR 叢集的許可,您可以檢視您已授予 Studio 存取權之所有帳戶的叢集合併清單。

  2. 選取您要將其連線至新筆記本的 Amazon EMR 叢集,然後選擇連接至筆記本。這會開啟一個模態視窗,其中顯示 JupyterLab 空間的清單。

    • 選取您要從中啟動 JupyterLab 應用程式的空間,然後選擇開啟筆記本。這會從您選擇的空間啟動 JupyterLab 應用程式,並開啟新的筆記本。

      注意

      Studio Classic 的使用者需要選取映像和核心。如需支援的映像清單,請參閱支援的映像和核心,可從 Studio 或 Studio Classic 連線至 Amazon EMR 叢集或參閱使用您自己的映像

    • 或者,您也可以選擇模態視窗頂端的建立新空間按鈕來建立新的私有空間。輸入空間的名稱,然後選擇建立空間並開啟筆記本。這會建立一個具有預設執行個體類型和最新可用 SageMaker Distribution 映像的私有空間、啟動 JupyterLab 應用程式,並開啟新的筆記本。

  3. 如果您選取的叢集不使用 Kerberos、LDAP 或執行時期角色驗證,Studio 會提示您選取憑證類型。選擇 Http 基本身分驗證無憑證,然後輸入您的憑證 (如果適用)。

    如果您選取的叢集支援執行時期角色,請選擇 Amazon EMR 叢集可為任務執行而擔任的 IAM 角色名稱。

    重要

    若要成功將 JupyterLab 筆記本連線至支援執行時期角色的 Amazon EMR 叢集,您必須先將執行時期角色清單與您的網域或使用者設定檔建立關聯,如 在 Studio 中設定用於 Amazon EMR 叢集存取的 IAM 執行時期角色 中所述。若無法完成此步驟,將阻止您建立連線。

    選取後,連線命令會填入筆記本的第一個儲存格,並啟動與 Amazon EMR 叢集的連線。

    一旦連接成功,將顯示一則訊息確認連線並啟動 Spark 應用程式。

或者,您可以從 JupyterLab 或 Studio Classic 筆記本連線至叢集。
  1. 選擇筆記本頂端的叢集按鈕。這會開啟模態視窗,列出處於 Running 狀態且您可以存取的 Amazon EMR 叢集。您可以在 Amazon EMR 叢集索引標籤中查看 Running Amazon EMR 叢集。

    注意

    對於 Studio Classic 的使用者,只有在您從 支援的映像和核心,可從 Studio 或 Studio Classic 連線至 Amazon EMR 叢集 或從 使用您自己的映像 使用核心時,才能看到叢集。如果您在筆記本頂端看不到叢集,請確定您的系統管理員已設定叢集的可探索性,並切換至支援的核心。

  2. 選取要連線的叢集,然後選擇連線

  3. 如果您已將 Amazon EMR 叢集設定為支援執行時期 IAM 角色,則可以從 Amazon EMR 執行角色下拉式功能表中選取您的角色。

    重要

    若要成功將 JupyterLab 筆記本連線至支援執行時期角色的 Amazon EMR 叢集,您必須先將執行時期角色清單與您的網域或使用者設定檔建立關聯,如 在 Studio 中設定用於 Amazon EMR 叢集存取的 IAM 執行時期角色 中所述。若無法完成此步驟,將阻止您建立連線。

    否則,如果您選擇的叢集不使用 Kerberos、LDAP 或執行時期角色驗證,Studio 或 Studio Classic 會提示您選取憑證類型。您可以選擇 HTTP 基本身分驗證無憑證

  4. Studio 新增程式碼區塊,然後將其執行到作用中儲存格以建立連線。此儲存格包含連線魔術命令,以根據您的驗證類型將您的筆記本連線至您的應用程式。

    一旦連接成功,將顯示一則訊息確認連線並啟動 Spark 應用程式。

使用連線命令連線至 Amazon EMR 叢集

若要建立與 Amazon EMR 叢集的連線,您可以在筆記本儲存格內執行連線命令。

建立連線時,您可以使用 Kerberos輕量型目錄存取通訊協定 (LDAP)執行時期 IAM 角色驗證進行驗證。您選擇的驗證方法取決於您的叢集組態。

您可以參考此範例在啟用 Kerberos 的 Amazon EMR 叢集上使用 Network Load Balancer 存取 Apache Livy,以設定使用 Kerberos 驗證的 Amazon EMR 叢集。或者,您可以在 aws-samples/sagemaker-studio-emr 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 執行時期角色

    %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 叢集

如果您已將 Amazon EMR 叢集設定為啟用傳輸加密,以及為 HTTPS 設定了 Apache Livy 伺服器,並希望 Studio 或 Studio Classic 使用 HTTPS 與 Amazon EMR 通訊,則需要設定 Studio 或 Studio Classic 以存取您的憑證金鑰。

對於自我簽署或本機憑證授權單位 (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 叢集的可用連線命令清單。