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

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

如果您使用带有动态端口转发的 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*.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*.amazonaws.com*", "active": true, "pattern": "*ec2*.amazonaws.com*", "importedPattern": "*ec2*.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*.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 界面