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

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

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

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

使用本地端口转发设置 SSH 隧道需要主节点的公有 DNS 名称和您的密钥对私有密钥文件。有关如何查找主节点公有 DNS 名称的信息,请参阅使用 Amazon EMR 控制台检索主节点的公有 DNS 名称。有关访问密钥对的更多信息,请参阅 中的 Amazon EC2 Amazon EC2 用户指南(适用于 Linux 实例) 密钥对。有关您可能希望在主节点上查看的站点的更多信息,请参阅查看 Amazon EMR 集群上托管的 Web 界面

在 Linux、Unix 和 Mac OS X 上使用本地端口转发设置到主节点的 SSH 隧道

在终端中使用本地端口转发设置 SSH 隧道

  1. 确保您已允许入站 SSH 流量。有关说明,请参阅连接之前:授权入站流量

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

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

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

    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 界面后,关闭终端窗口。