尝试访问Amazon EMR Spark Cluster时出现"操作超时"错误

xpm*_*xpm 13 ssh amazon-emr apache-spark

我正在尝试ssh到Amazon EMR Spark Cluster.这是我做的:

  1. 获取集群主机的IP:

    aws emr describe-cluster --cluster-id <cluster_id> | grep MasterPublicDnsName
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用IP ssh到框中:

    ssh -i CSxxx.pem hadoop@ec2-xx-xxx-xxx-xxx.ap-southeast-1.compute.amazonaws.com
    
    Run Code Online (Sandbox Code Playgroud)

我被困在这里,因为跑步(2)给了我以下错误:

ssh: connect to host ec2-xx-xxx-xxx-xxx.ap-southeast-1.compute.amazonaws.com port 22: Operation timed out
Run Code Online (Sandbox Code Playgroud)

有什么想法来解决这个问题?

Kri*_*ian 29

"操作超时"通常会出现以下两个原因之一:

  • EMR集群的安全组不允许您使用的IP.通过转到集群的控制台/仪表板并查找安全组,单击它,然后编辑"入站规则"并为SSH添加一行并在IP字段中下拉并选择您的IP来检查此项.

  • 或者,如果您在自定义VPC中创建了EMR集群,并且集群本身已启动到私有子网中,则无法先将SSH连接到公共子网中的实例中,您将无法直接SSH入其中.那个相同的VPC,然后从那里SSH到集群的驱动程序节点.如果您的AWS账户上没有自定义VPC,则此问题不太可能发生.

  • 在EMR控制台中添加SSH规则对我来说很有用.谢谢! (7认同)

Fan*_*ang 6

添加步骤以更新ssh规则。该安全组在EC2仪表板。

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

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

3)添加ssh,为源选择My IP

现在,您应该可以SSH到主节点了。