项目MPP数仓选型从greenplum变成Gbase,推国产化,大致看一下Gbase的特性和使用,博客内容参照GBase 8a MPP Cluster管理运维实战课程:https://ke.qq.com/course/981796,增加本地部署后实践操作;
目录
MPP和Gbase特性
Gbase集群部署
Gbase数仓的管理
MPP和Gbase特性
官方介绍:南大通用大规模分布式并行数据库集群系统,简称:GBase 8a MPP Cluster,它是一款 列式存储,Shared Nothing架构的分布式并行数据库集群,具备高性能、高可用、高扩展等特性,适用于OLAP场景(查询场景),可以为超大规模数据管理提供高性价比的通用计算平台,并广泛用于支撑各类数据仓库系统、 BI 系统和决策支持系统,一般企业级的大数据平台通用架构-lambda架构:
在MPP解决方案中目前我已接触过的是vertica和GP,在teradata实习期间没有用到td数仓,☺☺☺;
数仓的特性是大批量的查询和索引,少量的改查工作,MPP (Massively Parallel Processing),即大规模并行处理数据库的一般特性:
① 列式存储意味着高压缩比、高IO能力、快速查询能力、智能索引(数据写入时);
② shared nothing意味着节点的相互独立、数据的冗余备份;
③ 分布式存储/计算、存储/计算的高扩展性、高安全;
MPP的架构分为3种,GP是master/slave模式,具备统一的查询入口(master),vertica是无中心架构,所有节点都提供查询服务,gbase是存储/管理双中心架构;
shared nothing 模式:x86机器构建计算/存储的高扩展集群,数据拆分多份并备份;
shared disk 模式:专用小型机,存储1份数据;
Gbase的特性:
Gbase的架构总共包含三大核心组件,分布式管理集群 GCWare、分布式调度集群 GCluster 和分布式存储集群 GNode。它们的功能分别为:
GCWare:GCWare 用于各 GCluster 间共享信息(包括集群结构、节点状态、节点资源状态等信息),以及控制多副本数据操作时,提供可操作节点,控制各节点数据一致性状态。
GCluster:GCluster 负责 SQL 的解析、 SQL 优化、分布式执行计划生成、执行调度。
GNode:GNode 是 GBase 8a MPP Cluster 中最基本的存储和计算单元。 GNode 是由GCWare 管理的一个 GBase 8a MPP Cluster 实例,每个数据节点上有一个 GNode实例运行。 GNode 负责集群数据在节点上的实际存储,并从 GCluster 接收和执行经分解的 SQL 执行计划,执行结果返回给 GCluster。数据加载时, GNode 直接从集群加载服务接收数据,写入本地存储空间。
GCMonit :用于定期监测 GBase 8a MPPCluster 服务程序的运行状态, 一旦发现某个服务程序的进程状态发生变化,就会根据配置文件中的内容来执行相应的服务启停脚本命令,从而保证服务进程健康运行;
Gbase集群部署
一般MPP的集群化部署的通用步骤:1、软硬件环境准备和验证;2、安装包的分发和安装;3、数据库的初始化。Gbase在节点的软硬件环境准备好之后,后续只在一个节点操作安装和初始化;
首先是硬件准备,统一的内核版本、磁盘格式化、raid冗余和备份、root免密、关闭防火墙和selinux、ntp时间同步、端口占用情况;
GBase8a_MPP_Cluster-License-8.6.2_build43-R23-redhat7.3-x86_64.tar表明8.6.2是gbase的 节点版本,最新已到9+;
chown gbase.gbase /opt/ -R
把gcinstall目录下的SetSysEnv.py文件复制到各个节点并执行命令python SetSysEnv.py –dbaUser=gbase。将Set文件发送其它的虚拟机的opt目录;
解压安装包后进入gcinstall目录,demo.options中修改部分配置项,这里是单机版coordinator和datahost只有一个节点,生产环境两者分开的,还包括配置各个节点信息和数据库名称和密码以及用户密码。注意:这里面的dbaPwd和rootPwd,指的是服务器root和gbase的用户密码!单节点时,只需要填写本机IP即可InstallPrefix指的是Gbase将要被安装到的目录,目前数据库安装目录和存储目录在一起,无法单独指定存储目录,除非修改表空间位置,但是官方不建议。
在coordinator节点上执行下面的语句安装数据库,安装完成后会在coordinator节点的opt下生成gcluter目录,在data节点生成gnode目录,同时各个节点的服务也默认启动了;
./gcinstall.py --silent =demo.options
配置每个节点的环境变量:
开始采集指纹,其中-f表示采集指纹的文件名 执行当前目录下的gethostsid将各个节点的标识信息放到hostsfinger.txt中,采集后的指纹发给官方人员,获取授权;
./gethostsid -n 192.168.xx,192.168.xx -u root -p 123 -f hostsfinger.txt
找官方人员申请license, 使license生效
./License -n 192.168.xx,192.168.xx -u gbase -p gbase -f 1.lic
开启各服务的状态,切换到gbase用户;
gcluster_services all start
创建distribution,gcadmin showdistribution,查看生成的distribution。
gcadmin distribution gcChangeInfo.xml p 1 d 0 pattern 1 (p 1 d 0 单节点 )
Gbase数仓的管理
数据库登录方式:
gbase -h localhost -P 5258 -u root -pxxxx
gccli -uroot -pxxxx
GBase 8a MPP Cluster 为管理员提供了命令行工具 gcadmin,能实现 Distribution 的增加、移除;数据节点的增加、删除;查看集群状态等管理功能,使用gcadmin –help查看帮助;
1) 集群状态信息查询,可以查询节点 IP、节点状态、集群服务模式等信息;
2) 数据分布信息查询,可查询节点主分片和副分片的位置、总分片数量等信息;
3) 集群锁信息查询,可以查询锁的名称、节点 IP、锁的创建时间等信息;
4) 节点异常状态信息查询,可以查询所有的错误日志,某个表分片在某个节点上的错误日志等信息
查询gcware进程状态:service gcware status
更高版本的查询gcware进程状态:gcware_services all info
[gbase@localhost ~]$ gcware_services all info
gcware is running
集群三种状态,使用gbase switchmode readonly 命令切换状态:
GCWare、GCluster 、GNode是最主要的3个组件/模块,不同的模块对应的进程名:
GCWare、GCluster 、GNode模块的3个状态:
各个模块问题排查方式:
查看数据一致性,gcadmin中最后一列datastate表征数据的一致性:
查看DDL错误日志:gcadmin showddlevent,本地没有操作所以没有ddl语句;
[gbase@cos7mb opt]$ gcadmin showddlevent
Vc event count:0
查看集群锁状态:gcadmin showlock
在数据库内使用show processlist查看操作进程;
其他工具:
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net