选项 2,第 2 部分:配置代理设置以查看 Amazon EMR 集群主节点上托管的网站 - Amazon EMR

选项 2,第 2 部分:配置代理设置以查看 Amazon EMR 集群主节点上托管的网站

如果您使用带有动态端口转发的 SSH 隧道,则必须使用 SOCKS 代理管理附加组件来控制浏览器中的代理设置。使用 SOCKS 代理管理工具,您可以根据文本模式自动筛选 URL,并将代理设置限制为与主节点公有 DNS 名称形式匹配的域。当您在查看主节点上托管的网站和互联网上托管的网站之间进行切换时,浏览器附加组件会自动处理打开和关闭代理的操作。要管理代理设置,请将浏览器配置为使用附加组件(例如 FoxyProxy 或 SwitchyOmega)。

有关创建 SSH 隧道的更多信息,请参阅选项 2,第 1 部分:使用动态端口转发设置通往主节点的 SSH 隧道。有关可用 Web 界面的更多信息,请参阅查看 Amazon EMR 集群上托管的 Web 界面

在设置代理附加组件时,请包括以下设置:

  • 使用 localhost 作为主机地址。

  • 使用您选择的相同本地端口号与 选项 2,第 1 部分:使用动态端口转发设置通往主节点的 SSH 隧道 中的主节点建立 SSH 隧道。例如,端口 8157。此端口还必须与您在 PuTTY 或用于连接的任何其它终端仿真器中使用的端口号相匹配。

  • 指定 SOCKS v5 协议。SOCKS v5 允许您有选择地设置用户授权。

  • URL 模式

    以下 URL 模式应列入允许列表并使用通配符模式类型指定:

    • *ec2*.*compute*.amazonaws.com**10*.amazonaws.com* 模式与美国区域中集群的公有 DNS 名称匹配。

    • *ec2*.compute**10*.compute* 模式与所有其它区域中集群的公有 DNS 名称匹配。

    • 10.* 模式可提供对 Hadoop 中 JobTracker 日志文件的访问权限。如果此筛选条件与您的网络访问计划冲突,请更改此筛选条件。

    • *.ec2.internal**.compute.internal* 模式,分别与 us-east-1 区域和所有其它区域中集群的私有(内部)DNS 名称相匹配。

示例:为 Firefox 配置 FoxyProxy

以下示例演示了 Mozilla Firefox 的 FoxyProxy Standard(版本 7.5.1)配置。

FoxyProxy 提供了一套代理管理工具。该工具有便于您将代理服务器用于 URL,这些 URL 与 Amazon EMR 集群中 Amazon EC2 实例所使用的域对应模式相匹配。

使用 Mozilla Firefox 安装和配置 FoxyProxy
  1. 在 Firefox 中,转到 https://addons.mozilla.org/,搜索 FoxyProxy Standard,然后按照说明将 FoxyProxy 添加到 Firefox。

  2. 使用文本编辑器,根据以下示例配置创建名为 foxyproxy-settings.json 的 JSON 文件。

    { "k20d21508277536715": { "active": true, "address": "localhost", "port": 8157, "username": "", "password": "", "type": 3, "proxyDNS": true, "title": "emr-socks-proxy", "color": "#0055E5", "index": 9007199254740991, "whitePatterns": [ { "title": "*ec2*.*compute*.amazonaws.com*", "active": true, "pattern": "*ec2*.*compute*.amazonaws.com*", "importedPattern": "*ec2*.*compute*.amazonaws.com*", "type": 1, "protocols": 1 }, { "title": "*ec2*.compute*", "active": true, "pattern": "*ec2*.compute*", "importedPattern": "*ec2*.compute*", "type": 1, "protocols": 1 }, { "title": "10.*", "active": true, "pattern": "10.*", "importedPattern": "http://10.*", "type": 1, "protocols": 2 }, { "title": "*10*.amazonaws.com*", "active": true, "pattern": "*10*.amazonaws.com*", "importedPattern": "*10*.amazonaws.com*", "type": 1, "protocols": 1 }, { "title": "*10*.compute*", "active": true, "pattern": "*10*.compute*", "importedPattern": "*10*.compute*", "type": 1, "protocols": 1 }, { "title": "*.compute.internal*", "active": true, "pattern": "*.compute.internal*", "importedPattern": "*.compute.internal*", "type": 1, "protocols": 1 }, { "title": "*.ec2.internal* ", "active": true, "pattern": "*.ec2.internal*", "importedPattern": "*.ec2.internal*", "type": 1, "protocols": 1 } ], "blackPatterns": [] }, "logging": { "size": 100, "active": false }, "mode": "patterns", "browserVersion": "68.12.0", "foxyProxyVersion": "7.5.1", "foxyProxyEdition": "standard" }
  3. 打开 Firefox Manage Your Extensions (管理您的扩展) 页面(转到 about:addons,然后选择 Extensions (扩展))。

  4. 选择 FoxyProxy Standard,然后选择更多选项按钮(看起来像省略号的按钮)。

  5. 从下拉列表中选择 Options (选项)

  6. 从左侧菜单中选择 Import Settings (导入设置)

  7. Import Settings (导入设置) 页面上,选择 Import Settings from FoxyProxy 6.0+ (从 FoxyProxy 6.0+ 导入设置) 下的 Import Settings (导入设置),浏览到您创建的 foxyproxy-settings.json 文件所在的位置,选择该文件,然后选择 Open (打开)

  8. 当系统提示覆盖现有设置并保存新配置时,选择 OK (确定)

示例:为 Chrome 配置 SwitchyOmega

以下示例演示了如何为 Google Chrome 设置 SwitchyOmega 扩展。SwitchyOmega 允许您配置、管理和在多个代理之间切换。

使用 Google Chrome 安装和配置 SwitchyOmega
  1. 前往 https://chrome.google.com/webstore/category/extensions,搜索 Proxy SwitchyOmega,并将其添加到 Chrome。

  2. 选择 New profile (新建配置文件) 并输入 emr-socks-proxy 作为配置文件名称。

  3. 选择 PAC profile (PAC 配置文件) 然后选择 Create (创建)代理自动配置 (PAC) 文件,可帮助您定义应转发到 Web 代理服务器的浏览器请求的允许列表。

  4. PAC Script(PAC 脚本)字段的内容替换为以下脚本,该脚本定义应通过您 Web 代理服务器转发的 URL。如果您在设置 SSH 隧道时指定了不同的端口号,请将 8157 替换为您的端口号。

    function FindProxyForURL(url, host) { if (shExpMatch(url, "*ec2*.*compute*.amazonaws.com*")) return 'SOCKS5 localhost:8157'; if (shExpMatch(url, "*ec2*.compute*")) return 'SOCKS5 localhost:8157'; if (shExpMatch(url, "http://10.*")) return 'SOCKS5 localhost:8157'; if (shExpMatch(url, "*10*.compute*")) return 'SOCKS5 localhost:8157'; if (shExpMatch(url, "*10*.amazonaws.com*")) return 'SOCKS5 localhost:8157'; if (shExpMatch(url, "*.compute.internal*")) return 'SOCKS5 localhost:8157'; if (shExpMatch(url, "*ec2.internal*")) return 'SOCKS5 localhost:8157'; return 'DIRECT'; }
  5. Actions (操作) 下,选择 Apply changes (应用更改) 以保存您的代理设置。

  6. 在 Chrome 工具栏上,选择 SwitchyOmega 并 emr-socks-proxy 配置文件。

访问浏览器中的 Web 界面

要打开 Web 界面,请在浏览器地址栏中输入主节点或核心节点的公有 DNS 名称,后跟所选界面的端口号。以下示例显示了您要输入用来连接到 Spark HistoryServer 的 URL。

http://master-public-dns-name:18080/

有关检索节点的公有 DNS 名称的说明,请参阅检索主节点的公有 DNS 名称。有关 Web 界面 URL 的完整列表,请参阅查看 Amazon EMR 集群上托管的 Web 界面