为什么我无法访问我的 Amazon EMR 集群?

1 分钟阅读
0

我无法连接到我的 Amazon EMR 集群。

解决方法

Amazon EMR 安全组规则不正确

要解决此问题,请执行以下操作:

  • 验证 Amazon EMR 托管安全组规则对于内部用户、外部用户和应用程序是否正确。
  • 允许在端口 8443 上使用 TCP,以便集群管理器可以与集群的主节点通信。
  • 允许在端口 22 上使用 SSH,以便您可以使用 SSH 连接到集群。

Amazon EMR 集群在私有子网中的设置不正确

要解决此问题,请执行以下操作:

  • 添加针对服务访问的托管安全组。安全组规则必须允许集群管理器与集群节点通信。
  • 如果您使用的是堡垒主机,请配置堡垒主机安全组,以允许来自客户端系统的入站流量。此外,请配置 Amazon EMR 集群安全组,以允许来自堡垒主机的入站流量。

**注意:**网络配置设置各不相同,因此请确保正确设置端到端连接,且不存在黑洞。

身份验证设置不正确

检查身份验证设置是否使用 Amazon Elastic Compute Cloud (Amazon EC2) 密钥对Kerberos。然后,正确配置您的身份验证设置。

集群节点中存在资源限制

要解决此问题,请执行以下操作:

  • 验证底层主节点是否存在并处于正在运行状态。
  • 检查主节点的实例状态日志,以确定您如何使用资源。
    运行以下命令以检查占用 CPU 最多的用户:
    ps auxwww --sort -%cpu | head -10
    运行以下命令以检查内核的性能:
    dmesg | tail -n 25
    运行以下命令以检查内存使用情况:
    free -m
    运行以下命令以检查磁盘使用情况:
    df -h

主节点的实例控制器未运行

确保主节点的实例控制器正在运行。实例控制器是在集群节点上运行并与 Amazon EMR 控制平面和集群其余部分通信的进程守护程序。

在 Amazon EMR 版本 5.30.0 及更高版本上运行以下命令,以检查实例控制器的状态:

sudo systemctl status instance-controller

如果实例控制器未处于活动状态,请运行以下命令以启动实例控制器:

sudo systemctl start instance-controller

要检查早期 Amazon EMR 版本上实例控制器的状态并启动实例控制器,请参阅如何在 Amazon EMR 中重启服务?

AWS 官方
AWS 官方已更新 2 个月前