'Operation timed out' 尝试通过 ssh 连接到 Amazon EMR Spark 集群时出错

'Operation timed out' error on trying to ssh in to the Amazon EMR Spark Cluster

我正在尝试通过 ssh 连接到 Amazon EMR Spark 集群。这是我所做的:

  1. 获取集群master的IP:

    aws emr describe-cluster --cluster-id <cluster_id> | grep MasterPublicDnsName
    
  2. 使用 IP ssh 进入盒子:

    ssh -i CSxxx.pem hadoop@ec2-xx-xxx-xxx-xxx.ap-southeast-1.compute.amazonaws.com
    

我卡在这里了,因为 运行 (2) 给我以下错误:

ssh: connect to host ec2-xx-xxx-xxx-xxx.ap-southeast-1.compute.amazonaws.com port 22: Operation timed out

有解决此问题的想法吗?

"Operation timed out" 通常由于以下两个原因之一而发生:

  • EMR 集群的安全组不允许您使用 ssh 的 IP。通过转到集群的控制台/仪表板并找到安全组来检查这一点,单击它,然后编辑 "inbound rules" 并为 SSH 添加一行,并在 IP 字段中,下拉列表和 select 你的 IP。

  • 或者,如果您在自定义 VPC 中创建了 EMR 集群,并且集群本身启动到私有子网中,您将无法直接通过 SSH 连接到它,而无需先通过 SSH进入同一 VPC 中 public 子网中的一个实例,然后从那里通过 SSH 连接到集群的驱动程序节点。如果您的 AWS 账户上没有自定义 VPC,则不太可能出现此问题。

添加更新 ssh 规则的步骤。 安全组 位于 EC2 仪表板中。

1) 导航到 EC2 仪表板 -> 安全组

2) 查找组 ElasticMapReduce-master -> 入站 -> 编辑 -> 添加规则

3) 添加ssh,源选择我的IP

现在您应该可以通过 ssh 连接到主节点了。