【问题标题】:Cannot ssh into Spark worker无法通过 ssh 连接到 Spark 工作人员
【发布时间】:2020-11-08 18:05:41
【问题描述】:

在一个特定的执行器中有 8 个失败的任务。我想通过 ssh 连接到它来查看 yarn 日志。

执行者地址为:ip-123-45-6-78.us-west-2.compute.internal:34265

我都试过了:

ssh ip-123-45-6-78.us-west-2.compute.internal:34265

和

ssh ip-123-45-6-78.us-west-2.compute.internal

但两者都产生以下错误:

无法解析主机名 ip-123-45-6-78.us-west-2.compute.internal: 名称或服务未知

我还在.ssh/config 文件中添加了我用来连接主服务器的相同密钥对:

Host master
        HostName ec2-09-876-543-21.us-west-2.compute.amazonaws.com
        User hadoop
        IdentityFile ~/keypair.pem

Host worker
        HostName ip-123-45-6-78.us-west-2.compute.internal
        User hadoop
        IdentityFile ~/keypair.pem

而且ssh worker 和ssh worker:34265 都不起作用。

明确一点:ssh master 确实有效!

Spark 应用程序正在 EMR 集群上运行。

【问题讨论】:

    标签: amazon-web-services apache-spark ssh hadoop-yarn amazon-emr


    【解决方案1】:

    从主机名 *.compute.internal 这些是内部 IP 地址(私有 IP),您不能从本地系统 ssh。

    您可以通过SSH 到master,因为您使用的是主实例的公共 IP 地址。尝试也为工作人员使用公共 IP 地址,它应该可以工作。

    或者选项是通过主服务器创建ssh-tunnel,你可以尝试类似

    Host worker
            HostName ip-123-45-6-78.us-west-2.compute.internal
            User hadoop
            IdentityFile ~/keypair.pem
            ProxyCommand ssh master -W %h:%p
    
    

    【讨论】:

      【解决方案2】:

      您尝试连接到will not resolve as you're outside of the AWS VPC 的主机名。仅当网络的 DNS 通过 Route 53 Private Resolver 时,私有记录(作为 compute.internal 域的一部分)才能解析。

      如果您不担心解析 DNS 主机名,您可以尝试直接通过私有 IP 进行连接(假设您可以通过 VPN connection 或 Direct Connect 访问)。或者通过具有公共入口的实例进行连接,即客户端 -> 跳转服务器 -> 私有主机。

      如果您确实想通过私有域名解析,以下是最佳选择:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-13
        • 2021-09-10
        • 2020-05-12
        • 2021-08-28
        • 2020-07-27
        • 2015-10-21
        • 1970-01-01
        相关资源
        最近更新 更多