页面树结构
转至元数据结尾
转至元数据起始

1.安装环境要求

1.1. 集群系统环境

集群地址:

IP

主机名

角色

10.10.35.162

10-10-35-162

Leader

10.10.35.163

10-10-35-163

work

10.10.35.16410-10-35-164

work

1.2.环境检查

安装权限要求:
安装时用root用户运行或使用具有 sudo权限的用户执行。推荐使用root用户安装

1.2 防火墙配置

所有集群内的主机均需进行防火墙配置。

为了便于安装,建议在安装前关闭防火墙。使用过程中,为了系统安全可以选择启用防火墙,但必须启用Smartbi mpp使用到的相关端口。

1.2.1 关闭防火墙

临时关闭防火墙(立即生效)

1

systemctl stop firewalld

永久关闭防火墙(重启后生效)

1

systemctl disable firewalld

查看防火墙状态

1

systemctl status firewalld

1.2.2 开启防火墙

相关服务及端口对照表

服务名

开放端口

AIChat

9060、9081

Docker Swarm

2377、2376、5000、7946、4789、5001

GlusterFs

24007、24008、24009、49152、49153、49154、49155、49156、38465、38466、38467、111


如果确实需要打开防火墙安装,需要给防火墙放开以下需要使用到的端口
开启端口:9060、9081、2377、2376、5000、7946、4789、5001、24007、24008、24009、49152、49153、49154、49155、49156、38465、38466、38467、111

1firewall-cmd --zone=public --permanent --add-port=9060/tcp
2firewall-cmd --zone=public --permanent --add-port=9081/tcp
3firewall-cmd --zone=public --permanent --add-port=2377/tcp
4firewall-cmd --zone=public --permanent --add-port=2376/tcp
5firewall-cmd --zone=public --permanent --add-port=5000/tcp
6firewall-cmd --zone=public --permanent --add-port=7946/tcp
7firewall-cmd --zone=public --permanent --add-port=5001/tcp
8firewall-cmd --zone=public --permanent --add-port=4789/tcp
9firewall-cmd --zone=public --permanent --add-port=24007/tcp
10firewall-cmd --zone=public --permanent --add-port=24008/tcp
11firewall-cmd --zone=public --permanent --add-port=24009/tcp
12firewall-cmd --zone=public --permanent --add-port=49152/tcp
13firewall-cmd --zone=public --permanent --add-port=49153/tcp
14firewall-cmd --zone=public --permanent --add-port=49154/tcp
15firewall-cmd --zone=public --permanent --add-port=49155/tcp
16firewall-cmd --zone=public --permanent --add-port=49156/tcp
17firewall-cmd --zone=public --permanent --add-port=38465/tcp
18firewall-cmd --zone=public --permanent --add-port=38466/tcp
19firewall-cmd --zone=public --permanent --add-port=38467/tcp
20firewall-cmd --zone=public --permanent --add-port=111/tcp

配置完以后重新加载firewalld,使配置生效

1

firewall-cmd --reload

查看防火墙的配置信息

1

firewall-cmd --list-all

1.2.3 CPU架构以及指令集确认

输入查看系统的指令

uname -a|grep x86

可以看到如下信息,即为正常:

输入查看系统指令集的指令:

cat /proc/cpuinfo|grep avx

可以看到如下信息,即为正常:

1.2.4 网络环境检查

利用ping和telnet的方法无法准确判断是否连通,请务必按照本教程来检查。

网络环境检查要确保Smartbi服务器和NLA服务器双向访问正常。

首先确认NLA服务器是否可以连通Smartbi服务:

curl -L <http|https>://<Smartbi地址>

出现如下信息则在NLA服务器访问Smartbi服务是正常的。

同理需要在Smartbi安装的服务器上确认AIChat的服务是否连通:

curl -L <http|https>://<AIChat服务地址>

出现如下信息则在Smartbi服务器访问NLA服务是正常的。

1.3 设置系统环境

所有集群内的主机均需设置系统环境

1.3.1 关闭selinux

临时关闭selinux,立即生效,不需要重启服务器。

1

setenforce 0

永久关闭selinux,修改完配置后需要重启服务器才能生效

1

sed -i 's/=enforcing/=disabled/g'  /etc/selinux/config

温馨提示

建议关闭服务器虚拟内存,避免查询期间使用虚拟内存导致查询变慢和查询异常。

swapoff -a    #临时关闭

1.3.2 配置ip和主机名的映射 

在/etc/hosts 文件末尾添加:

1
2
3

10.10.35.162 10-10-35-162
10.10.35.163 10-10-35-163
10.10.35.164 10-10-35-164

部署(AIChat、Nginx、dockaer swarm、GlusterFs

2.安装AIChat

具体安装也可以参考单节点部署

  (1) 解压安装包

cd /<安装包路径>
tar -xvf nla-setup.tar.gz

  (2) 执行安装脚本进行安装

先在安装包的解压目录下对文件进行授权:

sudo chmod 777 -R *

创建AIChat安装目录(以下以/data/admin/smartbi-nla为例)

mkdir /data/admin/smartbi-nla

进入安装包解压目录

cd /<安装包解压目录>

使用install.sh脚本进行安装:

sudo bash install.sh

输入创建的AIChat安装目录的绝对路径:

当出现如下字样则说明安装完成:

在各个AIChat集群节点上安装完AIChat服务后执行sudo bash stop.sh停止服务;

(3)修改docker本地存储地址(可选择)

原因:通常docker安装后,默认的本地存储地址是根目录,根目录通常都不大,需要将仓库迁移到容量较大的目录

方法:

1、停止AIChat和docker

cd /data/admin/smartbi-nla   #停止AIChat

./stop.sh 

systemctl stop docker   #停止docker

2、创建存储目录(假设你的存储目录是:/data/docker-data)

mkdir /data/docker-data

3、在 /etc/docker目录下创建daemon.json文件;如果存在该文件则修改:

cd /etc/docker

vim /etc/docker/daemon.json

4、daemon.json文件的内容如下(填写创建的存储目录地址)
{
"data-root": "/data/docker-data"
}
5、重启docker
systemctl restart docker

(4)更改了docker本地存储地址后需要重新安装

进入AIChat安装目录

cd /<AIChat安装目录>

删除AIChat目录下文件

rm -rf *

进入安装包解压目录

cd /<安装包解压目录>

使用install.sh脚本进行安装:

sudo bash install.sh

输入创建的AIChat安装目录的绝对路径:

当出现如下字样则说明安装完成:

在各个AIChat集群节点上安装完AIChat服务后执行sudo bash stop.sh停止服务;

3.安装dockaer swarm

3.1 查看已经安装docker环境

# docker version

3.2 创建Swarm集群并且添加节点

1、Leader主机上初始化swarm。执行 docker swarm init 命令的节点自动成为管理节点

# 注:如果主机有多个网卡,拥有多个IP,必须使用 --advertise-addr 指定 IP。

# 示例:

docker swarm init --advertise-addr 10.10.35.162

# 执行命令后会给出加入这个swarm的命令

Swarm initialized: current node (4a8mo8cekpe0vpk0ze963avw9) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-4lzr2216s61ecbyayyqynjwybmxy5y5th5ru8aal2a0d1t2vn3-ekdgf4swlz8fiq4nnzgnbhr5u 10.10.35.162:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.


2、node主机上执行命令加入swarm

添加work:

SWMTKN-1-4lzr2216s61ecbyayyqynjwybmxy5y5th5ru8aal2a0d1t2vn3-ekdgf4swlz8fiq4nnzgnbhr5u 10.10.35.162:2377


添加manager:

docker swarm join-token manager

3.3 查看集群信息

# docker info

# docker node ls

3.4 关闭docker swarm集群

#docker node ls 找到leader节点并在leader节点上执行:

docker swarm leave

#移除所有leader节点后

docker swarm leave --force

4 搭建GlusterFs集群

4.1 安装GlusterFs

4.1.1 在所有节点上安装GlusterFS

sudo yum install -y glusterfs-server

4.1.2 在所有节点上启动并使GlusterFS服务

sudo systemctl start glusterd

sudo systemctl enable glusterd

4.1.3 在所有节点上配置防火墙允许GlusterFS通信

sudo firewall-cmd --permanent --add-service=glusterfs

sudo firewall-cmd --reload

4.1.4 在每个节点上,将其它节点的IP地址添加到信任池中:

sudo gluster peer probe <其它节点的IP地址>

4.1.5 查看集群状态

sudo gluster peer status

4.1.6 在任意node上创建复制卷(卷名:gfs-volume)

例如,创建一个名为gfs-volume的复制卷,副本数为3:

sudo gluster volume create gfs-volume replica 3 \

node1-ip:/data/gfs \

node2-ip:/data/gfs \

node3-ip:/data/gfs \

force

4.1.7 启动卷

sudo gluster volume start gfs-volume

4.1.8 在每个节点上将卷挂载成同样的目录(挂载路径:glusterfs)

sudo mount -t glusterfs <节点IP>:<卷名> /data/glusterfs

4.1.9 检查卷状态

sudo gluster volume info gfs-volume

注意:替换上述脚本中的 node1node2node3为你自己环境中的实际节点名或者IP;替换/data/gfs (物理存储路径)为磁盘空间充足的文件路径

4.2 GlusterFs集群同步验证

4.2.1. 测试同步

在任一节点上在/data/glusterfs目录下创建、写入或修改文件,可以在另一节点上看到这些更改

4.2.2. 容错测试

停止2个节点的GlusterFS服务:

#sudo systemctl stop glusterd

在剩余一个节点上继续进行文件操作(增加、修改、删除)

在停止了GlusterFS服务的2节点中仍然能保持数据同步

4.3 GlusterFs共享配置

复制NLA目录到共享存储(具体以实际安装目录)

cp -r /data/admin/smartbi-nla/config/   /data/glusterfs/admin/smartbi-nla/config

cp -r /data/admin/smartbi-nla/scripts    /data/glusterfs/admin/smartbi-nla/scripts

cp -r /data/admin/smartbi-nla/data      /data/glusterfs/admin/smartbi-nla/data

cp -r /data/admin/smartbi-nla/services   /data/glusterfs/admin/smartbi-nla/services

sudo chmod 777 -R /data/glusterfs

4.4 GlusterFs命令

4.4.1. 查看GlusterFS卷

gluster volume list

4.4.2. 查看所有卷的信息

gluster volume info

4.4.3. 查看所有卷的状态

gluster volume status

4.4.4. 停止一个卷

gluster volume stop dis-stripe

4.5 配置相关信息

4.5.1 修改docker-compose.yml配置文件

cd /data/admin/smartbi-nla/services

vim docker-compose.yml

可参考以下配置文件来修改,具体修改为glusterfs共享目录的路径

docker-compose.yml

4.6. 启动AIChat集群

在Leader节点上启动AIChat集群

启动集群:

cd /data/admin/smartbi-nla

docker stack deploy -c docker-compose.yml smartbi-nla

查看启动集群

docker stack ls

停止集群:

docker stack rm smartbi-nla

4.7 部署Nginx

参考Nginx官方文档 http://nginx.org/en/docs/ 使用源码或者YUM方式部署Nginx。

4.7.1 使用yum方式安装Nginx

# yum install -y nginx

通过如下命令,启动、重启与关闭nginx

# nginx              #启动nginx

# nginx -s reload     #重启nginx

# nginx -s quit       #关闭nginx

# nginx -t           #验证nginx.conf是否存在问题


日志可在 /var/log/nginx 下进行查看

# vi /etc/log/nginx/access.log     #访问日志

# vi /etc/log/nginx/error.log      #错误日志

4.7.1 Nginx 配置

在 /etc/nginx 路径下修改nginx.conf配置文件,可参考以下配置文件

# vi /etc/nginx/nginx.conf

nginx.conf

这里使用“ip_hash”权重分配模式,每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题,对于到AIChat产品的session会话,采取该种权重分配较为合适。

3、测试配置文件是否通过

1

nginx -t

测试通过!

4、重启nginx

1

nginx -s reload

4.8 smartbi配置AIChat集群

 进入Smartbi服务,进入系统运维--系统选项找到 服务器地址-- Smartbi服务器URL地址 配置项,设置Smartbi集群的地址:

这里以 http://10.10.202.100:8080/smartbi为例。

进入“系统运维--自然语言配置“中设置“自然语言分析的登录地址”,设置AIChat服务地址,集群下此处是配置Nginx代理后的服务器地址,点击“显示更多设置”:

如果出现设置项则配置成功,此时点击“保存”,保存系统设置;

AIChat默认的端口为9060;如需修改端口请依照安装目录下的docker-compose.yml的注释进行修改。

如果点击“保存“按钮提示报错,请检查一下是否拥有系统配置权限。

  (4) 配置大语言模型

进入“系统运维--自然语言配置“中设置使用大模型的版本

如果客户本身有大模型,则需要找客户问大模型的“设置大模型调用参数”的配置信息


Local_llm/Local

适用于所有OpenAI接口的大模型,例如deepseek


OPEN Al/gpt-3.5-turbo

OPEN Al/gpt-3.5-turbo-1106-ft

Azure/gpt-3.5-turbo

Baidu/ERNlE-Bot-4

Mianbi/cpm-conv

Xunfei/Spark-general 3.5

Qwen/Qwen

  • 无标签