选项 1:使用本地端口转发设置SSH通往 Amazon EMR 主节点的隧道 - Amazon EMR

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

选项 1:使用本地端口转发设置SSH通往 Amazon EMR 主节点的隧道

要连接到主节点上的本地 Web 服务器,需要在计算机和主节点之间创建一条SSH隧道。这也称为端口转发(port forwarding)。如果您不想使用SOCKS代理,则可以使用本地端口转发来设置通往主节点的SSH隧道。通过本地端口转发,您可以指定未使用的本地端口,这些端口用于将流量转发到主节点本地 Web 服务器上的特定远程端口。

使用本地端口转发设置SSH隧道需要主节点的公共DNS名称和您的 key pair 私钥文件。有关如何查找主公用DNS名称的信息,请参见检索主节点的公共DNS名称。有关访问密钥对的更多信息,请参阅《亚马逊EC2用户指南》中的亚马逊EC2密钥对。有关您可能希望在主节点上查看的站点的更多信息,请参阅 查看 Amazon EMR 集群上托管的网页界面

通过 Open 使用本地端口转发设置通往主节点的SSH隧道 SSH

在终端中使用本地端口转发设置SSH隧道
  1. 确保您已允许入站SSH流量。有关说明,请参阅 连接到 Amazon 之前EMR:授权入站流量

  2. 打开终端窗口。在 Mac OS X 上,选择 Applications (应用程序) > Utilities (实用程序) > Terminal (终端)。在其它 Linux 发布版上,终端通常位于 Applications (应用程序) > Accessories (附件) > Terminal (终端)

  3. 键入以下命令在本地计算机上打开SSH隧道。 此示例命令通过将本地端口 8157(随机选择的未使用的本地端口)上的流量转发到主节点本地 ResourceManager Web 服务器上的端口 8088 来访问 Web 界面。 

    在命令中,替换 ~/mykeypair.pem 使用文件的位置和文件名并替换 .pem ec2-###-##-##-###.compute-1.amazonaws.com 使用您的集群的主公共DNS名称。 要访问其他 Web 界面,请8088替换为相应的端口号。 例如,将齐柏林飞艇8890界面替换8088为。

    ssh -i ~/mykeypair.pem -N -L 8157:ec2-###-##-##-###.compute-1.amazonaws.com:8088 hadoop@ec2-###-##-##-###.compute-1.amazonaws.com

    -L 代表使用本地端口转发,由此,您就能指定一个本地端口,用于将数据转发到主节点本地 Web 服务器上标识的远程端口。

    在您发出此命令后,终端保持打开状态并且不返回响应。 

  4. 要在浏览器中打开 ResourceManager Web 界面,请在地址栏http://localhost:8157/中键入。

  5. 如果您已完成使用主节点上的 Web 界面,请关闭终端窗口。