在一个特定的执行器中有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集群上运行。
从主机名*.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
由于您在AWS VPC之外,因此无法解析您尝试连接的主机名。专用记录(作为compute.internal
域一部分的记录(只有在网络的DNS通过路由53专用解析程序时才能解析。
如果你不担心解析DNS主机名,你可以尝试直接通过私人IP连接(假设你可以通过VPN连接或直接连接访问(。或者,通过具有公共入口的实例进行连接,即客户端->跳转服务器->私人主机。
如果你确实想通过私人域名解决,以下是最好的选择:
- 入站解析程序
- 简单AD
- 在专有网络中设置一个基于EC2的DNS服务器