南大通用GBase 8a MPP Cluster分析型数据库在某行业典型实施部署方案(三)

原文链接:https://www.gbase.cn/community/post/4173
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

    文接上回。上一篇文章,已完成整体环境规划准备以及安装部署前的检查工作。本文继续介绍集群的具体安装过程以及安装后的必要的检验验证。

南大通用GBase 8a MPP Cluster分析型数据库在某行业典型实施部署方案(二)

6.GBase集群数据库安装与校验

6.1.安装要求

        安装前需要创建数据库管理用户gbase用户进行数据库的安装、卸载、配置及常规运维。由于GBase8a数据库目前只支持userid和groupid相同的用户安装数据库,因此根据操作系统部署规范,分别在所有GBase8a服务器上创建以下用户:uid=65625(gbase) ,gid=65533(gbase)。

通过root用户执行以下命令创建gbase用户
#创建组
groupadd -g 65533 gbase 
#创建用户
useradd -u 65625 -g gbase -d /home/gbase -m gbase 
#为gbase操作系统用户设置密码,例如:“**********”(具体密码设置请以项目实际情况设定)。
passwd gbase 
#弹窗出现后输入密码即可。

6.2.集群安装文件上传解压

        数据库安装目录统一规划为 /data 目录。

在所有GBase节点上,通过root用户授予/data 安装目录777权限。
chmod 777 /data
上传集群安装包到10.*.*.80节点的/data/路径下。
解压安装包到当前路径下:
cd /data
tar -xvf GBase8a_MPP_Cluster-9.5.2.**-redhat7-x86_64.tar.bz2
chown -R gbase:gbase gcinstall
解压后,将会在解压目录下生成 gcinstall 目录。

6.3.初始化操作系统环境变量

        初始化操作系统环境变量。需通过root用户执行一键环境变量初始化脚本 SetSysEnv.py (脚本位置:/data/gcinstall/)。首先将该脚本传输到各个节点的/data目录下,然后在每个节点上通过python命令执行脚本完成环境变量的初始化配置:

python SetSysEnv.py --dbaUser=gbase --installPrefix=/data

6.4.修改安装参数文件

        用户在安装集群前,需要根据实际情况,对安装配置文件demo.options进行修改。安装参数文件demo.options在解压安装包文件后的/data/gcinstall/这个路径下。

进入解压后的/data/gcinstall目录,根据实际的集群环境修改安装参数文件demo.options。
cd /data/gcinstall
vim demo.options
根据现场硬件情况配置如下:
installPrefix= /data  #实际安装路径
coordinateHost = 192.168.*.80,192.168.*.81,192.168.*.82  #管理节点实际IP,以逗号分隔
coordinateHostNodeID = 29,30,31  #管理节点ID,可以以IP网段最后一段为标识
dataHost =192.168.*.80,192.168.*.81,192.168.*.83,192.168.*.84,192.168.*.85   #数据节点实际IP,以逗号分隔
#existCoordinateHost =
#existDataHost =
dbaUser = gbase
dbaGroup = gbase
dbaPwd = '******'   #操作系统gbase用户密码,这里用******代替
rootPwd = ‘******’  #操作系统root用户密码,这里用******代替
#rootPwdFile = rootPwd.json

安装参数说明如下:
installPrefix: 指定安装目录。
coordinateHost: 所有coordinator节点 IP列表,IP地址之间用“,”分隔。IP地址一定要配置为内网IP。
coordinateHostNodeID: 为管理节点设置任意不重复的ID值。
dataHost: 所有data节点IP列表,IP地址之间用“,”分隔。IP地址一定要配置为内网IP。
existCoordinateHost: 所有已存在的coordinator节点IP列表,IP地址之间用“,”分隔。本次安装不需配置。
existDataHost: 所有已存在的data节点IP列表,IP地址之间用“,”分隔。本次安装不需配置。
dbaUser:集群运行时使用的操作系统用户名。配置dbaUser与installPrefix执行目录相同,需要保证该用户已创建。
dbaGroup: 集群运行时使用的操作系统用户所属的组名。
dbaPwd: 集群运行时使用的操作系统用户的密码。
rootPwd:安装集群节点机器中linux操作系统中root用户的统一的密码。
rootPwdFile,该参数支持root用户在多节点不同密码方式,与参数rootPwd不能同时使用,否则报错。

6.5.执行安装

成功修改安装参数文件后,用gbase用户执行数据库安装,安装脚本为gcinstall.py,具体命令如下:

cd /data/gcinstall
./gcinstall.py --silent=demo.options

参数说明:
1、gcinstall.py命令可选参数:passwordInputMode
参数含义:指定密码获取的方式,通过不同的参数实现不同的获取方式。若指定该参数,则demo.options中的密码不必再修改。
默认值: file
取值范围:[file,pwdsame,pwddiff]
file : 表示从文件或命令行参数获取,和原有的方式一致,该方式下,文件中的密码是明文的;
pwdsame:表示从终端由用户输入密码,并且所有节点的密码一致情况下使用该参数,对于不同用户密码只输入一次,适用于所有节点都用这个密码;
pwddiff:  表示从终端由用户输入密码,并且节点间的密码不一致情况下使用该参数,对于不同用户密码每个节点分别输入一次,适用于不同节点使用不同的密码;
2.-a 
参数含义:安装时跳过与用户交互提示信息。

安装成功后,GBase8a的数据库用户,默认管理员用户为 root, 密码为空。
每个coordinator节点的/data下会创建gcluster子目录和gcware子目录,每个data节点的/data下会创建gnode子目录,GBase 8a MPP Cluster的数据库用户,默认为root, 密码为空。
注意:初次执行gcadmin可能会报错找不到gcadmin命令,原因是gbase用户下数据库环境变量没有初始化,有两种解决办法:
1. 切出gbase账户,再重新切换到gbase用户,就能初始化gbase用户环境变量;
2. 在gbase用户执行以下命令初始化环境变量
source ~/.gbase_profile
安装成功后,执行管理命令gcamdin可以看到集群管理节点、数据节点及各个服务状态,示例如下:

6.6.配置distribution

        现场采用1副本1分片的配置方式进行配置

$ gcadmin distribution gcChangeInfo.xml p 1 d 1

配置成功后可以通过gcadmin showdistribution查看数据分布方式,示例如下:

6.7.安装后的配置步骤

6.7.1.数据库初始化

集群安装完毕,并且建立distribution之后,在首次执行SQL命令之前,需要对数据库系统做初始化操作,才能正确执行所有的SQL操作。如果不做初始化操作,执行数据库操作时会提示不能创建或执行。

1.首先使用root帐号登录集群。
gbase@node29:/data/setup/gcinstall> gccli -uroot
GBase client 9.5.2.22.******. Copyright (c) 2004-2022, GBase.  All Rights Reserved.
gbase> 
2.执行初始化命令 initnodedatamap命令。
gbase> initnodedatamap;
Query OK, 0 rows affected
注意:此命令只需执行一次,如果重复执行,系统会报告如下信息:
gbase> initnodedatamap;
ERROR 1707 (HY000): gcluster command error: (GBA-02CO-0004) nodedatamap is already initialized.
以上报错属于重复执行GBase8a集群初始化命令的报错,可以忽略。
6.7.2.业务库初始化
初始化usr_sod库,执行usr_sod.sql文件中的sql语句。
通过gbase用户将usr_sod.sql 上传到管理节点/home/gbase目录下,执行以下命令:
gccli -ugbase -p************* -vvv -f<usr_sod.sql >usr_sod.log  2>&1
#执行结束后,执行grep查看usr_sod初始化过程中有无error
cat usr_sod.log | grep err
*注意,初始化脚本中包含drop database操作,仅用作数据库表结构初始化,其他情况谨慎使用
然后各省需要初始化自己的专题库。
#以山东为例,通过gbase用户登陆数据库。下执行以下创建专题库命令:
gccli -ugbase -p************* -e"create database bejn_hadb"
6.7.3.业务用户初始化

GBase集群需初始化usr_music和usr_manager两个用户:


 

创建SQL语法为:
create user 用户名 identified by '密码';
SQL命令如下:
create user usr_manager identified by '********';  
create user usr_music identified by '**********'; 
授予两个用户所有库表的读写权,示例如下:
gbase> grant all on *.*.* to usr_music;
gbase> grant all on *.*.* to usr_manager;
# 允许usr_manager用户授权
gbase>grant grant option on *.*.* to usr_manager;
6.7.4.修改gcluster、gnode层配置文件

1)需要修改所有coordinator管理节点的配置文件gbase_8a_gcluster.cnf,位置在/data/gcluster/config/目录下,在配置文件gbase_8a_gcluster.cnf的[gbased]段中增加以下内容:

_gbase_transaction_disable=1
gcluster_lock_level=10
_gcluster_insert_cache_buffer_flag=1
gcluster_assign_kafka_topic_period=20
gcluster_kafka_max_message_size=800000000
gcluster_kafka_batch_commit_dml_count=500000
gcluster_kafka_local_queue_size=1100000
gcluster_kafka_consume_batch=10000
gcluster_kafka_user_allowed_max_latency=5000
gcluster_kafka_parallel_commit=1
gcluster_kafka_consumer_enable=1
gcluster_kafka_result_check= 0
gcluster_kafka_message_format_type=JSON
gcluster_random_insert = 1
gcluster_kafka_ignore_pos_field = 1
gcluster_kafka_delete_execute_directly=100
_t_gcluster_kafka_ignore_when_update_not_hit=1
gcluster_kafka_consumer_latency_time_statistics=1
_t_gcluster_kafka_allow_offset_jump=1000000
skip_file_check = 1
audit_log = 1
log_output='table'
long_query_time = 0
_t_gcluster_kafka_trust_kafka_returned_offset=1
_t_gcluster_kafka_consumer_compare_field_only_once=0
_t_gcluster_kafka_consumer_force_compare_field=0
gcluster_suffix_consistency_check=1
gcluster_kafka_consumer_support_partial_update=1
gbase_parallel_degree=8
然后调整 gbase_8a_gcluster.cnf 配置文件中的时区参数 default-time-zone='+0:00', 即从原来的 +8:00 调整为+0:00

2)需要修改所有data数据节点的配置文件gbase_8a_gbase.cnf,位置在/data/gnode/config/目录下,在配置文件gbase_8a_gbase.cnf的[gbased]段中增加以下内容:

gbase_parallel_max_thread_in_pool = 500
gbase_parallel_threshold = 100
_gbase_kafka_transaction_mode=1
_gbase_transaction_disable=1
gbase_buffer_insert=1024M  
gbase_tx_log_flush_time=5
gbase_fast_update=1
gbase_parallel_degree=8
然后调整 gbase_8a_gbase.cnf 配置文件中的时区参数default-time-zone='+0:00', 即从原来的 +8:00 调整为+0:00

3)需要逐个节点停止GBase8a服务,重启consumer消费配置才能生效。用gbase用户执行以下命令:

gcluster_services all stop
#待所有节点的GBase8a服务都停止后,再用gbase用户逐个节点启动
gcluster_services all start

6.8.集群安装后的校验

6.8.1.集群服务的启停

成功安装集群后,用户可以在每个节点上使用操作系统的gbase用户执行以下命令启停集群服务:

启动服务:
$ gcluster_services all start
停止服务:
$gcluster_services all stop
重启服务:
$ gcluster_services restart
其中,coordinator节点针对的服务有gclusterd,gcmonit,corosync,
gcrecover;data节点针对的服务有gbased,syncserver,gcmonit。
集群登录与退出
在任何节点上,在命令行状态,用户必须使用gbase用户,通过gbase 客户端工具连接数据库。命令格式如下。
gccli -u<usernameusername> -p<passwordpassword> [-h<i paddresspaddress>] [-P<portnameportname>] [-D<databasenamedatabasename>] [--nice_time_format format] [-c]
参数:
username:-u的参数值,连接数据库的用户名称,该名称默认为root。
password:-p的参数值,连接数据库的密码,该密码默认为空,首次安装并登录集群后,需要修改root用户的password。
ipaddress:-h的参数值,登录集群节点的的参数值,登录集群节点的IP地址,默认地址,默认127.0.0.1可选参数;如果指定多个选参数;如果指定多个IP地址, 则启动gccli的高可用功能,IP地址之间采用“,”分隔,例如:
192.168.*.80,192.168.*.81,192.168.*.82
在指定多个集群节点IP的情况下,gccli首先尝试与第一个节点IP建立连接,如果无法建立连接,则尝试与下一个节点连接,以此类推。如果配置的多个集群节点IP均无法建立连接,则gccli无法建立与集群的连接,本次登录失败。
portname:-P的参数值,集群使用的端口号,默认5258,可选参数。
databasename:-D的参数值,指定登录时默认的数据库(数据库必须存在),可选参数。
--nice_time_format:指定时间的显示格式,使用该参数,格式显示为'n hour n min nnn.nn sec',不使用该参数,格式显示为'hh:mm:ss.ff'。可选参数。nice_time_format可以这样使用:
gccli -uroot --nice_time_format
gccli -uroot --nice_time_format = 1
gccli -uroot --nice_time_format = 0
其中1和2等价,3等价于不使用nice_time_format。
-c:使用此参数,用于使用hint优化方式。可选参数。
6.8.2.简单操作验证

集群安装部署成功后,进行简单的创建,插入,修改,删除的操作,以验证集群的状态正常,示例如下:

验证create database功能
gbase> create database test;
验证create table功能
gbase> create table test(a int,b varchar(200),c decimal(15,4),d date,e datetime,f longblob);
验证insert功能
gbase> insert into test values (1,'AASSSDDD',10922.34,now(),'2022-07-02','xxxxxaaaaaaassssssdddd'),(2,'B',100.01,now(),'2019-07-02','xxxx');
验证update功能
gbase>update test set c= 500.04 where a=2;
验证delete功能
gbase> delete from test where a=2;
验证truncate功能
gbase> truncate table test;
验证drop功能
gbase> drop table test;
验证ftp加载功能
gbase>load data infile 'ftp://gbase:gbase@192.168.*.11/gbasedata/ssbm/lineorder.tbl' INTO TABLE ssbm.lineorder FIELDS TERMINATED BY '|';
验证本地加载功能
gbase> load data infile 'file://192.168.*.11/home/gbase/gbasedata/ssbm/lineorder.tbl' INTO TABLE ssbm.lineorder FIELDS TERMINATED BY '|';


        以上安装与校验工作完成后,GBase 8a MPP集群初步安装完毕,如果还需要安装监控GMonitor等,可以参考相关手册。

        一次成功的项目实施,除了在安装前做好项目整体规划,环境配置检查,编写安装步骤指导以及安装后必要的验证外,还要规划好项目组实施的工程师、项目经理等,保障项目的顺利实施与按时交付,确保客户满意度以及交付质量。

收藏

评论

原文链接:https://www.gbase.cn/community/post/4173
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值