本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用连接到 Amazon EMR 集群主节点 SSH
Secure Shell (SSH) 是一种网络协议,可用于创建与远程计算机的安全连接。建立连接后,请如同在远程电脑上运行那样,操作您在本地计算机上的终端。您在本地发出的命令会在远程电脑上运行,同时,远程计算机的命令输出将显示在终端窗口中。
SSH与一起使用时 Amazon,您正在连接到一个EC2实例,该实例是在云中运行的虚拟服务器。使用 Amazon 时EMR,最常见的用途SSH是连接到充当集群主节点的EC2实例。
使用SSH连接到主节点使您能够监控群集并与之交互。您可以在主节点上发出 Linux 命令、以交互方式运行应用程序(如 Hive 和 Pig)、浏览目录、读取日志文件等。您还可以在SSH连接中创建隧道以查看主节点上托管的 Web 界面。有关更多信息,请参阅 查看 Amazon EMR 集群上托管的网页界面。
要使用连接到主节点SSH,您需要主节点的公共DNS名称。此外,与主节点关联的安全组必须有入站规则,允许来自包括SSH连接来源的客户端在内的来源SSH(TCP端口 22)流量。您可能需要添加一条规则以允许来自您的客户端的SSH连接。有关修改安全组规则的更多信息,请参阅 使用安全组控制您的 Amazon EMR 集群的网络流量 Amazon EC2 用户指南中的向安全组添加规则。
检索主节点的公共DNS名称
您可以使用 Amazon EMR 控制台和检索主公用DNS名称 Amazon CLI。
在 Linux、Unix SSH 和 Mac OS X 上使用并使用亚马逊EC2私钥连接到主节点
要创建使用私钥文件进行身份验证的SSH连接,您需要在启动集群时指定 Amazon EC2 key pair 私钥。有关访问密钥对的更多信息,请参阅《亚马逊EC2用户指南》中的亚马逊EC2密钥对。
默认情况下,您的 Linux 计算机很可能包含SSH客户端。例如,大多数 Linux、Unix 和 macOS 操作系统上都安装了 Open SSH。您可以通过ssh在命令行键入来检查是否有SSH客户端。如果您的计算机无法识别该命令,请安装SSH客户端以连接到主节点。Open SSH 项目提供了全套SSH工具的免费实现。如需了解更多信息,请参阅 Open SSH
以下说明演示如何在 Linux、Unix 和 Mac OS X 上打开与亚马逊EMR主节点的SSH连接。
配置密钥对私有密钥文件权限
在使用 Amazon EC2 key pair 私钥创建SSH连接之前,您必须对.pem
文件设置权限,以便只有密钥所有者才有权访问该文件。这是使用终端或创建SSH连接所必需的 Amazon CLI。
-
确保您已允许入站SSH流量。有关说明,请参阅 连接到 Amazon 之前EMR:授权入站流量。
-
找到您的
.pem
文件。这些说明假定文件名为mykeypair.pem
,并将其存储在当前用户的主目录中。 -
键入以下命令以设置权限。
~/mykeypair.pem
替换为 keypair 私钥文件的完整路径和文件名。例如C:/Users/<username>/.ssh/mykeypair.pem
。chmod 400
~/mykeypair.pem
如果您没有对
.pem
文件设置权限,您将收到一条错误消息,指出您的密钥文件不受保护,并且密钥将被拒绝。您只需在第一次使用密钥对私有密钥文件时设置权限即可连接。
使用终端连接到主节点
-
打开终端窗口。在 Mac OS X 上,选择 Applications (应用程序) > Utilities (实用程序) > Terminal (终端)。在其它 Linux 发布版上,终端通常位于 Applications (应用程序) > Accessories (附件) > Terminal (终端)。
-
要建立与主节点的连接,请键入以下命令。
ec2-###-##-##-###.compute-1.amazonaws.com
替换为集群的主公用DNS名,替换~/mykeypair.pem
为文件的完整路径和.pem
文件名。例如C:/Users/<username>/.ssh/mykeypair.pem
。ssh hadoop@
ec2-###-##-##-###.compute-1.amazonaws.com
-i~/mykeypair.pem
重要
连接到 Amazon EMR 主节点
hadoop
时必须使用登录名;否则,您可能会看到类似的错误Server refused our key
。 -
警告指出无法验证您正在连接的主机真实性。键入
yes
以继续。 -
在主节点上完成操作后,键入以下命令以关闭SSH连接。
exit
如果您在使用SSH连接到主节点时遇到困难,请参阅排除与您的实例的连接问题。
在 Windows SSH 上使用连接到主节点
Windows 用户可以使用SSH像 Pu 这样的客户端TTY连接到主节点。在连接到 Amazon EMR 主节点之前,您应该下载并安装 Pu TTY 和 P uTTYgen。 你可以从 Pu 下载页面TTY下载
Pu 本身TTY不支持亚马逊EC2生成的密钥对私钥文件格式 (.pem
)。您可以使用 P 将密钥文件uTTYgen 转换为所需的 Pu TTY 格式 (.ppk
)。在尝试使用 Pu 连接到主节点之前,必须将密钥转换为此格式 (.ppk
) TTY。
有关转换密钥的更多信息,请参阅 Amazon EC2 用户指南uTTYgen中的使用 P 转换私钥。
使用 Pu 连接到主节点 TTY
-
确保您已允许入站SSH流量。有关说明,请参阅 连接到 Amazon 之前EMR:授权入站流量。
-
打开
putty.exe
。你也可以TTY从 Windows 程序列表中启动 Pu。 -
如有必要,在 Category (类别) 列表中,选择 Session (会话)。
-
在主机名(或 IP 地址)中,键入
hadoop@
MasterPublicDNS
。例如:hadoop@
ec2-###-##-##-###.compute-1.amazonaws.com
。 -
在 “类别” 列表中,选择 “连接” > SSH “身份验证”。
-
对于 Private key file for authentication (用于身份验证的私有密钥文件),选择 Browse (浏览),然后选择您生成的
.ppk
文件。 -
选择 “打开”,然后选择 “是” 以关闭 Pu TTY 安全警报。
重要
登录主节点时,如果系统提示您输入用户名,请键入
hadoop
。 -
在主节点上完成工作后,可以通过关闭 Pu 来关闭SSH连接TTY。
注意
要防止SSH连接超时,可以在 “类别” 列表中选择 “连接”,然后选择 “启用 TCP _keepaliv es” 选项。如果您在 Pu 中有一个处于活动状态的SSH会话TTY,则可以通过打开 Pu TTY 标题栏的上下文(右键单击)并选择 “更改设置” 来更改设置。
如果您在使用SSH连接到主节点时遇到困难,请参阅排除与您的实例的连接问题。
使用 Amazon CLI连接到主节点
你可以在 Windows、Linux、Unix 和 Mac OS X 上使用与主节点建立SSH连接。无论平台如何,你都需要主节点的公共DNS名称和你的 Amazon EC2 密钥对私钥。 Amazon CLI 如果您在 Linux、Unix 或 Mac OS X 上使用,则还必须设置私钥(.pem
或.ppk
)文件的权限,如所示配置密钥对私有密钥文件权限。 Amazon CLI
要使用连接到主节点 Amazon CLI
-
确保您已允许入站SSH流量。有关说明,请参阅 连接到 Amazon 之前EMR:授权入站流量。
-
要检索集群标识符,请键入:
aws emr list-clusters
输出列出了您的集群,包括集群IDs。记下您连接的集群的集群 ID。
"Status": { "Timeline": { "ReadyDateTime": 1408040782.374, "CreationDateTime": 1408040501.213 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" } }, "NormalizedInstanceHours": 4, "Id": "j-2AL4XXXXXX5T9", "Name": "AWS CLI cluster"
-
键入以下命令以打开与主节点的SSH连接。在以下示例中,
j-2AL4XXXXXX5T9
替换为群集 ID,~/mykeypair.key
替换为文件(对于 Linux、Unix 和 Mac OS X)或.ppk
文件(对于 Windows)的完整路径和文件名。.pem
例如C:\Users\<username>\.ssh\mykeypair.pem
。aws emr ssh --cluster-id
j-2AL4XXXXXX5T9
--key-pair-file~/mykeypair.key
-
在主节点上完成工作后,关闭 Amazon CLI 窗口。
有关更多信息,请参阅中的 Amazon EMR 命令 Amazon CLI。如果您在使用SSH连接到主节点时遇到困难,请参阅排除与您的实例的连接问题。