为什么我无法将 EMR 笔记本连接到集群?

2 分钟阅读
0

我无法将 Amazon EMR 笔记本连接到 EMR 集群。

简短描述

将 EMR 笔记本连接到 EMR 集群时,您可能会收到与以下内容类似的错误:

  • 无法连接到集群 j-XXXXXXXXXXX。原因:连接工作区(笔记本)失败。内部错误。
  • 所选可用区不支持笔记本。请尝试使用另一个可用区中的集群。
  • 连接工作区(笔记本)失败。配置无效。
  • 工作区(笔记本)已停止。集群 j-XXXXXXXXXX 没有安装 JupyterEnterpriseGateway 应用程序。请使用其他集群重试。
  • 工作区错误:无法将 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 版本 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 笔记本时的常见工作区错误:

  • 无法将 EMR 笔记本连接到正在运行的集群。
  • 启动内核时出错。
  • HTTP 403:禁止访问(工作区未连接到集群。选择“确定”以继续。)

发生这些错误是因为 AWS 根账户无权将 EMR 笔记本连接到 EMR 集群。根用户被视为未经授权的用户,无法启动内核。如果 KERNEL_USERNAME 的值显示在 unauthorized_users 列表中,则连接请求将失败。有关更多信息,请参阅安全功能

为避免工作区错误,请创建 AWS Identity and Access Manager(AWS IAM)用户,然后将集群连接到笔记本。有关更多信息,请参阅在 AWS 账户中创建 IAM 用户


AWS 官方
AWS 官方已更新 1 年前
没有评论