暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

GBase 8a MPP Cluster特点及安装过程

原创 蜻蜓队长 2022-04-22
1775

GBase 8a MPP Cluster特点及安装过程


文章目录


一.介绍

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列表名,在各节点安装缺少的包。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论