在公有云或者内外网环境中,Cloudera的平台产品CDH/CDP/HDP需要访问很多Web UI,但系统网络可能仅支持SSH访问(22端口)。要访问Cloudera Manager(7180端口)或者其他服务,可以通过下列两种方式:
- 在客户端计算机上设置SOCKS(套接字安全协议)代理。Cloudera建议您使用此选项。
- 将CDP/CDP部署到公有云之后,将入站规则添加到公有云实例中的网络安全组。
1. 配置SOCKS代理
SOCKS5协议是作为客户端和服务器进程实现的,它可以遍历IP网络防火墙。配置SOCKS代理后,浏览器使用公有云网络(通过代理服务器)解析DNS查找,并允许您使用内部FQDN或专用IP地址连接到服务。
使用这种方法,您可以完成以下任务:
- 设置到网络上主机之一的单个SSH隧道,并在主机上创建SOCKS代理。
- 更改浏览器配置,以通过SOCKS代理主机执行所有查找。
1.1. 网络先决条件
在使用SOCKS代理连接到集群之前,请验证以下先决条件:
- 您必须能够从公共Internet或您要从其连接的网络中访问要代理的主机。
- 您要代理的主机必须与您要连接的Cloudera服务位于同一网络上。例如,如果您使用的是Cloudera CDP/EDH产品,请通过隧道连接到Cloudera Manager主机。
1.2. 查找主机的公共IP
对于Cloudera EDH产品,请使用第0个主节点VM的公共IP:[dnsName] -mn0。
2.启动SOCKS代理
2.1.Linux
要通过SSH启动SOCKS代理,请运行以下命令:
ssh -i your-key-file.pem -CND 1080 the_username_you_specified@publicIP_of_VM
该命令使用以下参数:
- -i your-key-file.pem指定SSH到Cloudera CDP/EDH服务器所需的私钥的路径。如果使用SSH密码,则省略。
- C 设置压缩。
- N 建立后禁止执行任何命令。
- D 在端口上设置SOCKS代理。
- 1080 用于在本地设置SOCKS代理的端口。
2.2. Windows
3.配置Google Chrome浏览器以使用代理
默认情况下,Chrome浏览器会按配置文件使用系统范围的代理设置。要在没有这些设置的情况下启动Chrome,请通过命令行打开Chrome并指定以下内容:
- SOCKS代理端口。该端口必须与启动代理时使用的端口相同。
- 配置文件。下面的示例创建了一个新的配置文件。
使用以下命令之一创建配置文件并启动与当前任何正在运行的Chrome实例不冲突的Chrome的新实例。
3.1.Linux
/usr/bin/google-chrome \ --user-data-dir="$HOME/chrome-with-proxy" \ --proxy-server="socks5://localhost:1080"
3.2. Mac OS X
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \ --user-data-dir="$HOME/chrome-with-proxy" \ --proxy-server="socks5://localhost:1080"
3.3. 微软Windows
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^ --user-data-dir="%USERPROFILE%\chrome-with-proxy" ^ --proxy-server="socks5://localhost:1080"
在此Chrome会话中,您可以使用私有IP地址或内部FQDN连接到Cloudera EDH可访问的任何主机。
我这边的客户端是Mac OS X,执行完上面的代理后将启动一个新的Chrome实例。
这样就可以通过内网访问Cloudera Manager和其他Web UI了
也可以通过CM中的web UI跳转直接跳转过去。
4. 网络安全组
警告:除概念验证以外,不建议将此方法用于任何其他目的。如果没有仔细锁定数据,那么黑客和恶意实体将可以访问这些数据。
有关Cloudera Manager,CDP组件,托管服务和第三方组件使用的端口的更多信息,请参阅Cloudera文档。