通过SSH隧道访问Cloudera Manager服务组件Web UI
在Cloudera Manager集群中,为保证集群安全,Hadoop、Spark和Flink等开源组件的Web UI的端口均未对外开放。您可以通过在本地服务器上建立SSH隧道以端口转发的方式来访问Web UI,通过本地端口转发方式。本章节将为您介绍通过SSH隧道访问CM服务组件Web UI的具体操作流程。
获取Utility节点的公网IP地址
使用动态端口转发方式
创建从本地服务器开放端口到集群主节点的SSH隧道,并运行侦听该端口的本地SOCKS代理服务器,端口的数据会由SSH隧道转发到集群主节点
创建SSH隧道
密钥的方式
ssh -i <密钥文件路径> -N -D 8157 root@<Utility节点公网IP地址>
密码方式
ssh -N -D 8157 root@<Utility节点公网IP地址>
相关参数描述如下:
8157:本地服务器端口以8157为例,实际配置时,您可使用本地服务器未被使用的任意一个端口。
-D:使用动态端口转发,启动SOCKS代理进程并侦听用户本地端口。
<Utility节点公网IP地址>:获取方式请参见获取Utility节点的公网IP地址。
<密钥文件路径>:密钥文件保存的路径。
配置浏览器
完成动态转发配置以后,您可以从以下两种方式中选择一种来进行浏览器配置。
方式1 Chrome浏览器命令行方式
打开命令行窗口,进入本地Google Chrome浏览器客户端的安装目录。
操作系统不同,Chrome浏览器的默认安装目录不同。
操作系统 | Chrome默认安装路径 |
Mac OS X | "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \ --user-data-dir="$HOME/chrome-with-proxy" \ --proxy-server="socks5://localhost:8157" |
Linux | /usr/bin/google-chrome \ --user-data-dir="$HOME/chrome-with-proxy" \ --proxy-server="socks5://localhost:8157" |
Windows | "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^ --user-data-dir="%USERPROFILE%\chrome-with-proxy" ^ --proxy-server="socks5://localhost:8157" |
8157:本地服务器端口以8157为例,实际配置时,您可使用本地服务器未被使用的任意一个端口。
在此 Chrome 会话中,您就可以通过内网访问 Cloudera Manager 和其他 Web UI 了。
比如:http://cdp-master-1.xxxx.cn-hangzhou.cdp.aliyuncs.com:9870/dfshealth.html#tab-overview
方式2 配置代理扩展程序的方式
代理扩展程序可以帮助您更加轻松地在浏览器中管理和使用代理,确保网页浏览和集群Web UI访问互不干扰。
安装Chrome的SwitchyOmega插件。
安装完成以后,单击SwitchyOmega插件,然后在弹出框中选择选项进行配置。
单击新建情景模式,输入情景模式名称(例如SSH pac),情景模式类型选择PAC情景模式。
在PAC脚本中配置以下内容。
function regExpMatch(url, pattern) {
try { return new RegExp(pattern).test(url); } catch(ex) { return false; }
}
function FindProxyForURL(url, host) {
// Important: replace 172.31 below with the proper prefix for your VPC subnet
if (shExpMatch(url, "*localhost*")) return "SOCKS5 localhost:8157";
if (shExpMatch(url, "*cdp-*")) return "SOCKS5 localhost:8157";
return 'DIRECT';
}
完成上述参数配置后,在左侧导航栏中单击应用选项。
打开Chrome浏览器,在Chrome中单击SwitchyOmega插件,切换到之前创建的SSH tunnel情景模式下。
登录CDP管控,访问相应服务的Web UI。 例如:访问Ranger页面