GBase 8a MPP Cluster特点及安装过程
文章目录
- GBase 8a MPP Cluster特点及安装过程
- 一.介绍
- 二、安装过程
- 1.环境准备
- 2.集群安装
- 2.1所有节点创建DBA用户
- 2.2在集群所有节点上创建安装目录并授权
- 2.3安装包解压缩
- 2.4设置环境变量
- 2.5修改主节点的安装配置文件(demo.options)
- 2.6执行安装脚本
- 2.6集群状态查看
- 2.6申请license和导入授权
- 2.6在集群所有节点上启动全部集群服务
- 2.6设置分片信息(创建发布)
- 2.6数据库初始化
- 3.集群卸载
- 安装时需注意
一.介绍
GBase 8a MPP Cluster ,全称“南大通用大规模分布式并行数据库集群系统”,为管理超大规模数据量而设计的通用计算平台,具备高性能、高可用、高扩展特性,广泛应用于各类企事业单位的数据仓库系统、BI系统和决策支持系统
特点
- GBase 8a MPP Cluster采用 MPP + Shared Nothing 的分布式联邦架构、大规模并行计算,采用Coordinator管理调度集群、data计算集群,支持超过1000个节点,coordinator节点支持部署64个节点,单虚拟子集群300个以上data节点,单节点支持100TB裸数据,所有节点无共享。
- 大规模并行计算,采用分布式执行计划器、基于规则和基于代价的优化器、基于异步 I/O 技术的调度器,支持高并发、高可靠、大规模的并行调度
- 列存储数据以DC(数据单元)为单位进行组织,DC为基本I/O单元,每个DC包含65536行数据,数据行数不足时以DC尾块形式单独存放。
- 高效压缩,压缩比1:20以上,库级、表级、列级三级压缩选项,可以对压缩方式进行修改
- 智能索引:粗粒度,轻量级索引,索引的建立和维护对系统资源的占用和性能,影响几乎为零,索引自动建立,随数据变化自动更新,记录DC内最大值、最小值、空值、求和值等
- 集群高可用、可在线扩展,通过冗余机制来保证集群的高可用特性,互备的分片数据间可实现自动同步;数据通过副本提供冗余保护,自动故障探测和管理,自动同步元数据和业务数据。副本故障不影响集群的可用性;支持故障的自动恢复,无需人工干预;数据的副本机制支持1或2个数据副本,支持自定义的数据副本分布方式
架构
GBase 8a MPP Cluster共包含三大核心组件及辅助功能组件,其中核心组件
包含分布式管理集群 GCWare、分布式调度集群 GCluster 和分布式存储计算集群GNode。
- GCluster:负责SQL的解析、SQL优化、分布式执行计划生成、执行调度
- GCWare:用于各节点 GCluster 实例间共享信息,控制各节点数据一致性状态
- 通常Gclusterd与GCWare组件部署在相同的物理节点上,统称Coordinator 集群:作为整个数据库的管理者与统一入口
- GNode:集群数据最基本的存储和计算单元,主要负责存储集群数据、接收和执行 GCluster 下发的 SQL 并将执行结果返回给 GCluster、从加载服务接收数据进行数据加载。
- VC(Virtual Cluster):计算节点组成的虚拟子集群,实现单个业务的独立管理,包括 database、表等数据库对象
- Free Nodes:不属于任何VC的gnode节点,通常是备机或待扩容或节点替换的节点
- GCMonit:监测GBase 8a MPP Cluster服务程序的运行状态, 一旦发现某个服务程序的进程状态发生变化,就会根据配置文件中的内容来执行相应的服务启停脚本命令,从而保证服务程序健康运行
二、安装过程
1.环境准备
- 我这里使用的系统是CentOS7.5,三个节点
- 硬件配置:内存2G以上(推荐4G),硬盘 20G以上,固定IP地址
- 各节点IP是同一网段,并互相能连通;开启 SSH 服务;关闭防火墙、关闭seLinux服务。
# systemctl status firewalld.service ##检查防火墙
# systemctl disable firewalld ##关闭防火墙
# sestatus ##检查selinux服务
系统提示以下信息说明 selinux 已被禁用
SELinux status: disabled
否则修改配置文件/etc/selinux/config,将SELINUX参数设置为 disabled,即 SELINUX=disabled
保存退出后,需要重新启动才能生效。
准备安装包
将 GBase8a_MPP_Cluster-License-9.5.2.39-redhat7.3-x86_64.tar.bz2 拷贝到 /opt目录下
2.集群安装
2.1所有节点创建DBA用户
# useradd gbase
# passwd gbase
2.2在集群所有节点上创建安装目录并授权
# mkdir -p /opt/gbase
# chown gbase:gbase /opt/gbase
# chown gbase:gbase /tmp
2.3安装包解压缩
# cd /opt
# tar xfj GBase8a_MPP_Cluster-License-9.5.2.39-redhat7.3-x86_64.tar.bz2
解压缩完成后,opt 下能看到生成 gcinstall 安装目录
2.4设置环境变量
复制主节点的环境设置脚本(SetSysEnv.py)至从节点
根据自己设置主节点IP修改即可
# scp root@192.168.10.1:/opt/gcinstall/SetSysEnv.py /opt
运行SetSysEnv.py脚本配置安装环境
# python SetSysEnv.py --dbaUser=gbase --installPrefix=/opt/gbase --cgroup
注意:需要在所有节点执行
2.5修改主节点的安装配置文件(demo.options)
切换到 gbase 用户
# su - gbase
$ vi /opt/gcinstall/demo.options
installPrefix= /opt/gbase
coordinateHost = 192.168.10.1,192.168.10.2,192.168.10.3
coordinateHostNodeID = 234,235,237
dataHost = 192.168.10.1,192.168.10.2,192.168.10.3
#existCoordinateHost =
#existDataHost =
dbaUser = gbase
dbaGroup = gbase
dbaPwd = 'gbase'
rootPwd = 'peixun'
#rootPwdFile = rootPwd.json
参数说明:
installPrefix: 指定安装目录
coordinateHost: 所有集群调度节点列表,可以是 IPV4、IPV6、主机名,但不建议使用 IPV4 和 IPV6 混合方式部署集群,地址之间用“,”分隔
coordinateHostNodeID: 每个 Coordinator 节点的 nodeid,在 IPV6 和域名安装时,必须指定,IPV4 安装时可不指定,与 coordinateHost 中列出的节点列表一一对应, 之间用“,”分隔
dataHost: 所有集群 Data 节点列表,可以是 IPV4、IPV6、主机名,但
不建议使用 IPV4 和 IPV6 混合方式部署集群,节点地址之间用“,”分隔
dbaUser: 集群安装和运行时使用的操作系统用户名。在安装/扩展/替换
节点前,需要创建该用户
dbaGroup: 集群安装和运行时使用的操作系统用户所属的组名
dbaPwd: 集群安装和运行时使用的操作系统用户的密码
rootPwd: 安装集群节点机器中 linux 操作系统中 root 用户的统一密码。
因旧版集群 GCWare 版本依然需要 root 权限,所以升级时,
仍然需要提供用户 root 密码,其它情况不需要使用;
2.6执行安装脚本
$ ./gcinstall.py --silent=demo.options
如果操作系统没cgroup(资源管理)组件,会出现如下警告,输入 Y 回车即可
2.6集群状态查看
查看集群状态
$ gcadmin
因为没有注册授权,gcluster 和 gnode 服务是 close 状态属于正常现象。
需要安装 license 后服务才能正常 open 状态
2.6申请license和导入授权
将采集的指纹文件发送给南大通用
请将您的指纹文件发给 license@gbase.cn,同时,需要在 mail 中附上安装 GBase 8a MPP Cluster 产品所使用的操作系统名称及版本,南大通用最终为用户提供试用版或者商用版 LICENSE 文件。
注意:CPU、内存变更、Mac地址变动和license过期会导致license失效,另外license成功导入后,删除license文件并不会导致license失效
导出集群各节点的指纹信息:
根据自己设置IP修改即可
$ ./gethostsid -n 192.168.10.1,192.168.10.2,192.168.10.3 -u root -p 密码 -f /tmp/finger.txt
导入授权
$ ./License -n 192.168.10.1,192.168.10.2,192.168.10.3 -f /tmp/20210608.lic -u gbase -p gbase
检查授权导入情况
$ ./chkLicense -n 192.168.10.1,192.168.10.2,192.168.10.3 -u gbase -p gbase
License 状态说明:
is_exist 用于标识 license 文件是否存在: yes 代表存在,no 代表不存在;
version 用于标识 license 类型: trial为试用版, business 为商用版;
expire_time 用于标识试用版 license 的到期日期,只在检测试用版license 时才会显示;
is_valid 用于标识 license 是否有效: yes 代表 license 有效,no代表 license 失效;
2.6在集群所有节点上启动全部集群服务
注意使用dba用户
# su - gbase
$ gcluster_services all start
这是在使用命令 gcadmin 服务状态均为OPEN
2.6设置分片信息(创建发布)
$ gcadmin distribution gcChangeInfo.xml p 2 d 1 pattern 1
分片信息在gcinstall 下 gcChangeInfo.xml 文件
<?xml version="1.0" encoding="utf-8"?>
<servers>
<rack>
<node ip="192.168.10.1"/>
<node ip="192.168.10.2"/>
<node ip="192.168.10.3"/>
</rack>
</servers>
在查看集群状态
$ gacdmin
CLUSTER STATE: ACTIVE
VIRTUAL CLUSTER MODE: NORMAL
===============================================================
| GBASE COORDINATOR CLUSTER INFORMATION |
===============================================================
| NodeName | IpAddress | gcware | gcluster | DataState |
---------------------------------------------------------------
| coordinator1 | 192.168.10.1 | OPEN | OPEN | 0 |
---------------------------------------------------------------
| coordinator2 | 192.168.10.2 | OPEN | OPEN | 0 |
---------------------------------------------------------------
| coordinator3 | 192.168.10.3 | OPEN | OPEN | 0 |
---------------------------------------------------------------
=========================================================================================================
| GBASE DATA CLUSTER INFORMATION |
=========================================================================================================
| NodeName | IpAddress | DistributionId | gnode | syncserver | DataState |
---------------------------------------------------------------------------------------------------------
| node1 | 192.168.10.1 | 1 | OPEN | OPEN | 0 |
---------------------------------------------------------------------------------------------------------
| node2 | 192.168.10.2 | 1 | OPEN | OPEN | 0 |
---------------------------------------------------------------------------------------------------------
| node3 | 192.168.10.3 | 1 | OPEN | OPEN | 0 |
---------------------------------------------------------------------------------------------------------
也可以执行如下命令查看发布信息
$ gcadmin showdistribution node
Distribution ID: 1 | State: new | Total segment num: 6
====================================================================================================================================
| nodes | 192.168.10.1 | 192.168.10.2 | 192.168.10.3 |
------------------------------------------------------------------------------------------------------------------------------------
| primary | 1 | 2 | 3 |
| segments | 4 | 5 | 6 |
------------------------------------------------------------------------------------------------------------------------------------
|duplicate | 3 | 1 | 2 |
|segments 1| 5 | 6 | 4 |
====================================================================================================================================
2.6数据库初始化
在管理节点上执行如下命令(数据库root密码默认为空)
$ gccli -u root -p
gbase> initnodedatamap;
3.集群卸载
停止所有节点的所有集群服务,在所有节点执行
# gcluster_services all stop
Stopping GCMonit success!
Stopping gcrecover : [ OK ]
Stopping gcluster : [ OK ]
Stopping gcware : [ OK ]
Stopping gbase : [ OK ]
Stopping syncserver : [ OK ]
在主节点上执行卸载命令
$ cd /opt/gcinstall
$ ./unInstall.py --silent=demo.options
安装时需注意
环境变量是否生效、端口是否被占用,节点集群服务是否都已启动
查看安装8a集群的依赖包列表
$ cat /opt/gcinstall/dependRpms
pcre
krb5-libs
libdb
glibc
keyutils-libs
libidn
libuuid
ncurses-libs
libgpg-error
libgomp
libstdc++
libcom_err
libgcc
python-libs
libselinux
libgcrypt
nss-softokn-freebl
在安装脚本执行过程中,如果系统提示缺少rpm依赖包,需要按照以上rpm列表名,在各节点安装缺少的包。




