為什麼我的 EMR 筆記本無法與叢集連線?

2 分的閱讀內容
0

我的 Amazon EMR 筆記本無法與我的 EMR 叢集連線。

簡短說明

將 EMR 筆記本與 EMR 叢集連線時,您可能會收到類似下列內容的錯誤:

  • Unable to attach to cluster j-XXXXXXXXXXX.Reason: Attaching the workspace(notebook) failed.Internal error. (無法連接到 j-XXXXXXXXXXX 叢集。原因:工作區 (筆記本) 連接失敗。內部錯誤。)
  • Notebook is not supported in the chosen Availability Zone.Please try using a cluster in another availability zone. (選擇的可用區域不支援筆記本功能。請嘗試在其他可用區域中使用叢集。)
  • Attaching the workspace(notebook) failed.Invalid configuration. (工作區 (筆記本) 連接失敗。組態無效。)
  • Workspace(notebook) is stopped.Cluster j-XXXXXXXXXX does not have JupyterEnterpriseGateway application installed.Please retry with another cluster. (工作區 (筆記本) 已停止。j-XXXXXXXXXX 叢集未安裝 JupyterEnterpriseGateway 應用程式。請重試與其他叢集連線。)
  • Workspace errors: Not able to attached EMR notebook to running cluster.Error starting kernel.HTTP 403: Forbidden (Workspace is not attached to cluster.Click 'Ok' to continue.) (工作區發生錯誤:無法將 EMR 筆記本連接至執行中的叢集。啟動核心時出錯。HTTP 403:禁止 (工作區未連接至叢集。按一下「確定」繼續。))

解決方案

確認連接的叢集相容且符合所有叢集要求

EMR 筆記本的叢集要求如下:

1.    僅支援使用 Amazon EMR 發行版本 5.18.0 版及更新版本建立的叢集。

2.    不支援使用具有 AMD EPYC 處理器之 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體所建立的叢集。例如,m5a.* 和 r5a.* 執行個體類型就不受支援。

3.    EMR 筆記本僅適用於在將 VisibleToAllUsers 變數設定為 true 的情況下建立的叢集。預設情況下,VisibleToAllUsers 設為 true

4.    叢集必須在 EC2 Amazon Virtual Private Cloud (Amazon VPC) 內啟動。支援公有和私有子網路。

5.    EMR 筆記本目前僅支援 Apache Spark 叢集。

6.    若使用的是 EMR 發行版本 5.32.0 版及更新版本或 6.2.0 版及更新版本,您的叢集必須執行 Jupyter Enterprise Gateway 應用程式。

7.    不支援使用 Kerberos 身分驗證的叢集。

8.    與 AWS Lake Formation 整合的叢集僅支援安裝筆記本範圍的程式庫。不支援在叢集上安裝核心和程式庫。

9.    不支援具有多個主節點的叢集。

10.    不支援使用以 AWS Graviton2 為基礎之 Amazon EC2 執行個體的叢集。

如需詳細資訊,請參閱叢集要求

錯誤:無法連接到 j-XXXXXXXXXXX 叢集。原因:工作區 (筆記本) 連接失敗。內部錯誤

此錯誤會發生在開啟 Apache Livy 模擬的 EMR 叢集中。這表示 livy.impersonation.enabled 變數設為 true。預設情況下,Amazon EMR 6.4.0 Livy 模擬設為 true。Livy 使用者模擬功能關閉的 EMR 筆記本功能也會在預設情況下關閉 HttpFS。這表示 EMR 筆記本無法與已開啟 Livy 模擬的叢集連線。如需詳細資訊,請參閱 Amazon EMR release 6.4.0 (Amazon EMR 發行版本 6.4.0 版)。

請執行下列動作以免發生此問題:

您可使用執行 hadoop-httpfs 服務的 EMR 6.4.0 的任何更舊版或更新版。

執行下列動作,在叢集上重新啟動 hadoop-httpfs 服務:

1.    使用 SSH 與 EMR 主節點連線

2.    執行下列命令以啟動 hadoop-httpfs 服務:

sudo systemctl start hadoop-httpfs

或者,您可以使用 EMR 步驟來啟動 hadoop-httpfs 服務:

==========
JAR location: command-runner.jar
Main class: None
Arguments: bash -c "sudo systemctl start hadoop-httpfs"
Action on failure: Continue
==========

執行下列命令以驗證 HttpFS 的狀態:

$ sudo systemctl status hadoop-httpfs
  hadoop-httpfs.service - Hadoop httpfs
   Loaded: loaded (/etc/systemd/system/hadoop-httpfs.service; disabled; vendor preset: disabled)
   Active: active (running)...

3.    重新與 EMR 叢集連接。

錯誤:工作區發生錯誤

以下是嘗試將 EMR 叢集與 EMR 筆記本連線時常發生的工作區錯誤:

  • Not able to attached EMR notebook to running cluster. (無法將 EMR 筆記本連接至執行中的叢集。)
  • Error Starting Kernel. (啟動核心時出錯。)
  • HTTP 403: Forbidden (Workspace is not attached to cluster.Choose 'Ok' to continue.) (HTTP 403:禁止 (工作區未連接至叢集。按一下「確定」繼續。))

發生這些錯誤是因為 AWS 根帳戶未獲授權,因而無法將 EMR 筆記本連接至 EMR 叢集。根使用者會被視為未經授權的使用者,無法啟動核心。如果 KERNEL_USERNAME 的值出現在 unauthorized_users 清單中,則連線請求會失敗。如需詳細資訊,請參閱安全功能

為了避免工作區發生錯誤,請建立 AWS Identity and Access Manager (AWS IAM) 使用者,然後再將叢集連接至筆記本。如需詳細資訊,請參閱在您的 AWS 帳戶中建立 IAM 使用者


AWS 官方
AWS 官方已更新 1 年前