Cloudera Manager 前后端分离部署方法

现状

如果大数据团队使用 Cloudera Manager 产品,那极有可能会遇到以下场景:
有多套环境,需要维护各个环境的 scm server 地址(http://10.x.x.x:7180
给每个 scm server 申请域名,但域名的变更需要走流程

方案

采取前后端分离部署方案(niginx + 域名),将 cloudera-scm-server 的前端静态文件分离出来置于 Nginx 服务器,
通过不同的域名配置,实现同一份前端文件 + 不同的后段接口服务。

实践操作

环境:Cloudera Manager 6.3.1

前端文件

仔细探索 Cloudera Manager 的安装目录,不难发现其前端文件目录 /opt/cloudera/cm/webapp

# ll /opt/cloudera/cm/webapp
total 68
-rw-r--r--  1 root root  4559 Sep 25  2019 favicon-BLACK.png
-rw-r--r--  1 root root   430 Sep 25  2019 favicon-BLUE.png
-rw-r--r--  1 root root   442 Sep 25  2019 favicon-BROWN.png
-rw-r--r--  1 root root   432 Sep 25  2019 favicon-DARKBLUE.png
-rw-r--r--  1 root root   367 Sep 25  2019 favicon-GRAY.png
-rw-r--r--  1 root root   443 Sep 25  2019 favicon-GREEN.png
-rw-r--r--  1 root root 12871 Sep 25  2019 favicon.ico
-rw-r--r--  1 root root   385 Sep 25  2019 favicon-PINK.png
-rw-r--r--  1 root root   420 Sep 25  2019 favicon-PURPLE.png
-rw-r--r--  1 root root   438 Sep 25  2019 favicon-RED.png
-rw-r--r--  1 root root   411 Sep 25  2019 favicon-TEAL.png
-rw-r--r--  1 root root   423 Sep 25  2019 favicon-YELLOW.png
-rw-r--r--  1 root root    63 Sep 25  2019 index.html
drwxr-xr-x 11 root root   119 Feb 21  2023 static
drwxr-xr-x  3 root root    35 Feb 21  2023 WEB-INF

将该目录下所有内容放置于 Nginx 服务器目录 /usr/share/nginx/cloudera-scm-ui

Nginx配置

分析 Cloudera Manager 前后端主要接口,包含

/cmf :主要接口
/j_spring_security_ :登录相关
/api :开放api

使用 scm-upstreams.conf 文件维护不同环境不同主机的 upstream

upstream cloudera-manager-test {
    server 10.1.1.1:7180 max_fails=60 fail_timeout=10s;
    keepalive 60;
}

upstream cloudera-manager-dev {
    server 10.1.1.2:7180 max_fails=60 fail_timeout=10s;
    keepalive 60;
}

upstream cloudera-manager-prd {
    server 10.1.1.3:7180 max_fails=60 fail_timeout=10s;
    keepalive 60;
}

配置例子 /etc/nginx/conf.d/scm-test.abc.xyz.conf

server {
    listen 80;
    server_name scm-test.abc.xyz;

    root /usr/share/nginx/cloudera-scm-ui;

    index index.html;

    try_files $uri $uri/ /index.html;

    location ~ ^/(api|cmf|j_spring_security_) {
        proxy_pass http://cloudera-manager-test;
    }
}

配置完成,执行 nginx reload 生效配置

# nginx -s reload

经过以上配置后,通过申请域名或者本地配置 hosts 方式,即可实现不同的环境共用一个前端, 打开 scm-test.abc.xyz 访问 Cloudera Manager 页面。

posted @ 2024-11-01 12:20  iKinson  阅读(80)  评论(0)    收藏  举报