GBase 8a MPP Cluster分析型数据库在某行业典型实施部署方案

一、总概述

为配合某行业数据平台建设,满足某行业项目规划对探测数据和产品的全流程高效管理和访问服务的需求,实现历史长时间序列数据的统计分析,需要在国省两级搭建分布式分析型数据库集群环境,支撑国、省行业业务应用。 依照客户约定,产品实施服务包括全国信息中心部署与31个省级信息中心部署。为保证实施质量,在国家信息中心完成部署实施后,由天津南大通用数据技术股份有限公司拟定省级部署实施方案。省级完成部署、测试后,经客户确认后,进入试运行期。

本文详细介绍了GBase 8a MPP Cluster分析型数据库部署的详细过程。主要分为三部分:前期规划、安装环境准备、安装部署校验。

二、建设方案范围与内容

2.1.建设方案

GBase 8a MPP数据库系统软件V95需要在国家信息中心以及全国各省信息中心进行部署,总计32套,至少192个数据库集群节点。 省级部署实施需要在9个月内完成所有实施部署任务,为保证项目实施的顺利开展,我公司将依据全国信息中心先期建设经验及流程,制定详细的省级项目实施方案书,确保项目的圆满完成。

2.2.建设内容

根据项目安排,省级中心(23个省)部署6个节点,区域中心(8个省)部署8个节点,本方案按照省级一套6节点GBase8a MPP集群进行方案编制,区域中心的8个节点参考省级中心的方案。GBase8a MPP集群环境(见图表3-1)。建设内容包括:安装环境准备与配置、软件安装前检查、集群安装部署、集群安装后的校验和应用连接规划等。

图表3-1设备清单

GBase 8a MPP Cluster分析型数据库在某行业典型实施部署方案

三、技术方案

3.1.系统结构

6节点GBase 8a集群环境系统结构如图表4-1所示:

图表 4-1:系统结构

GBase 8a MPP Cluster分析型数据库在某行业典型实施部署方案

3.2.系统布局

GBase 8a集群节点服务器组网划分为3个coordinator节点+5个data节点的方式,其中2个coordinator节点和data节点复用。6台机器IP地址分配如下:
图表4-2:集群节点的IP分配表

GBase 8a MPP Cluster分析型数据库在某行业典型实施部署方案

4.环境配置

4.1.服务器IP地址规划

6台主机建议coordinator节点规划3个,data节点5个、其中2台机器coordinator节点和data节点复用。由于集群JDBC自带自动路由功能,因此在web应用中间件中的JDBC配置URL中可将集群所有coordinator节点万兆网IP地址均配置到hostlist参数中,以便当有节点离线时,应用连接自动下发到可以使用的集群节点上,不影响应用正常使用集群。集群各节点IP地址规划目前分配如下,万兆网络IP地址用于数据内部通信使用。
图表4-1:IP地址分配

GBase 8a MPP Cluster分析型数据库在某行业典型实施部署方案

4.2.Raid配置规划

考虑操作系统和数据文件存储分离,保障数据安全,将现有磁盘配置2个raid5 (均为物理分区,不做逻辑卷)。
Raid1:2块SSD盘,用于用户操作系统的安装以及swap分区的分配
raid5:22块SAS盘,用于数据的数据存储
data盘(raid5)的raid卡条带选择最大的。最小也要1MB以上。不要用默认。
Access Policy:设置为RW
Read Policy:设置为Ahead
Write Policy:设置为Write Back with BBU,允许RAID控制器自动切换为Write Through模式;
IO Policy:操作系统磁盘(RAID1)设置为Direct IO模式,集群安装磁盘(RAID50)设置为Cached IO模式;其他可采用默认设置。

参照方案,raid配置参考如下图表4-2:

图表4-1:RAID划分方式以及说明

GBase 8a MPP Cluster分析型数据库在某行业典型实施部署方案

4.3.操作系统配置规划

集群各节点操作系统均采用RedHat7.5系列 64位版本,版本信息如下:Description:Red Hat Enterprise Linux 7.5;Release:7.5。操作系统参考配置如下:
1.采取”桌面”或者”软件工作站点”的方式安装;
2.root用户口令:建议各省安装前统一root密码;
3.gbase用户口令:建议各省安装前统一gbase密码;
4.语言采用默认 english (后续需手工安装中文支持);
5.keyboard  选择 U.S.ENGLISH;
6.主机名定义:gbase0*
7.时区 选择 世界时间   GMT时间;
8.磁盘分区:
sda  480G    [swap:128GB boot:960MB 根:剩余的分给根目录]
sdb  12TB     [12TB全部分给data]
全部采用ext4 格式化;
9.安装方式:桌面或软件工作站, customize now  选择 语言 选择 chinese support。
10.操作系统重启后,无需新建用户;
11. 需要修改当前日期和时间;
12. 设置 enable kdump。

4.4.网络配置规划

安全集群的网络规划如下:

1.集群千兆网、万兆网(或者双万兆环境)地址,参考国家局建议统一规划。
2.集群节点需配置千兆和万兆网络IP地址(千兆连接办公网,万兆用于集群内部数据交换)万兆、千兆网络均需采用双网卡绑定,绑定模式为主备模式(mode=1),千兆2网口绑定分别连接千兆主备交换机,万兆2网口绑定分别连接万兆兆主备交换机。
3.网卡绑定必须设置成开机自动生效的。
4.千兆、万兆网络不建议配置在同一网段内。如万兆网络使用私网地址,千兆网络使用办公环境地址。
5.集群服务器、交换机部署在同一个机房及同一个IP局域网段内(或配置在同一vlan中),并避免集群节点的跨交换机级联部署方式。
6.6台主机建议分置2个不同机柜(同一机房内)。如左机柜3台,右机柜3台。
4.5.端口规划
以下端口号为gbase数据常用端口号,在集群操作系统配置防火墙的前提下,需要开启以下端口保证集群能后正常运行。

图表4-3:端口规划表

GBase 8a MPP Cluster分析型数据库在某行业典型实施部署方案

4.6.GBASE数据库版本规划

安装版本:GBase8a_MPP_Cluster-9.5.2.23-redhat7-x86;
集群架构规划:GBASE集群架构规划为6个节点,文件服务器(加载机)复用其中某一节点;
6台主机建议规划3个coordinator节点,5个data节点,其中2个data节点和coordinator节点复用;
8台主机建议规划3个coordinator节点,7个data节点,其中2个data节点和coordinator节点复用;
10台主机建议规划3个coordinator节点,9个data节点,其中2个data节点和coordinator节点复用。

4.7.应用连接资源规划

建议业务可以通过接入不同的管理节点以降低单节点压力。由于集群JDBC自带自动路由功能,因此在web应用中间件中的JDBC配置URL中可将集群所有coordinator节点均配置到hostlist参数中,以便当有节点离线时,应用连接自动下发到可以使用的集群节点上,不影响应用正常使用集群。

5.集群安装前检查

5.1.硬件配置检查

1.验证服务器硬件配置是否均与硬件配置清单项相符;
2.验证服务器硬件是否能正常工作、正常启动;
3.验证raid卡配置是否按照推荐配置进行了设置。

5.2.操作系统配置检查

1.验证操作系统版本是否采用了推荐版本。
2.验证是否进行了双卡绑定。
3.验证千兆、万兆网卡是否工作在正常的速率模式。
4.验证磁盘分区是否正确,分区大小、采用文件系统是否为推荐配置。
5.验证防火墙是否开放GBase8a集群相关服务端口。
6.验证各主机root口令是否设置一致。
7.验证各主机上集群相关端口是否被占用。

5.3.磁盘性能测试

采用dd和fio磁盘测试工具对/data目录进行磁盘IO性能测试,根据测试结果评估磁盘顺序、随机读写的性能是否正常;

写测试 执行命令“dd oflag=direct if=/dev/zero of=1.dat bs=2M count=200” 
读测试 执行命令“dd iflag=direct if=1.dat of=/dev/null bs=2M count=200” 
读写测试 执行命令“dd iflag=direct oflag=direct if=1.dat of=2.dat bs=2M count=200” 
语法:dd [选项]
if =输入文件(或设备名称)。
of =输出文件(或设备名称)。
    bs=bytes:同时设置读入/输出的块大小为bytes个字节。
    count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。

测试脚本如下:

rm -rf /opt/1.dat
rm -rf /opt/2.dat
echo -e "-----begin 4k test-----n" >> /root/dd.log
echo -e "-----begin 4k write-----n" >> /root/dd.log
dd oflag=direct if=/dev/zero of=/opt/1.dat bs=4k count=262144 >> /root/dd.log 2>&1
echo -e "-----begin 4k read-----n" >> /root/dd.log
dd iflag=direct if=/opt/1.dat of=/dev/null bs=4k count=262144 >> /root/dd.log 2>&1
echo -e "-----begin 4k read and write-----n" >> /root/dd.log
dd iflag=direct oflag=direct if=/opt/1.dat of=/opt/2.dat bs=4k count=262144 >> /root/dd.log 2>&1
echo -e "-----end 4k test-----n" >> /root/dd.log

rm -rf /opt/1.dat
rm -rf /opt/2.dat

echo -e "-----begin 8k test-----n" >> /root/dd.log
echo -e "-----begin 8k write-----n" >> /root/dd.log
dd oflag=direct if=/dev/zero of=/opt/1.dat bs=8k count=131072 >> /root/dd.log 2>&1
echo -e "-----begin 8k read-----n" >> /root/dd.log
dd iflag=direct if=/opt/1.dat of=/dev/null bs=8k count=131072 >> /root/dd.log 2>&1
echo -e "-----begin 8k read and write-----n" >> /root/dd.log
dd iflag=direct oflag=direct if=/opt/1.dat of=/opt/2.dat bs=8k count=131072 >> /root/dd.log 2>&1
echo -e "-----end 8k test-----n" >> /root/dd.log

rm -rf /opt/1.dat
rm -rf /opt/2.dat

echo -e "-----begin 16k test-----n" >> /root/dd.log
echo -e "-----begin 16k write-----n" >> /root/dd.log
dd oflag=direct if=/dev/zero of=/opt/1.dat bs=16k count=65536 >> /root/dd.log 2>&1
echo -e "-----begin 16k read-----n" >> /root/dd.log
dd iflag=direct if=/opt/1.dat of=/dev/null bs=16k count=65536 >> /root/dd.log 2>&1
echo -e "-----begin 16k read and write-----n" >> /root/dd.log
dd iflag=direct oflag=direct if=/opt/1.dat of=/opt/2.dat bs=16k count=65536 >> /root/dd.log 2>&1
echo -e "-----end 16k test-----n" >> /root/dd.log

rm -rf /opt/1.dat
rm -rf /opt/2.dat

echo -e "-----begin 32k test-----n" >> /root/dd.log
echo -e "-----begin 32k write-----n" >> /root/dd.log
dd oflag=direct if=/dev/zero of=/opt/1.dat bs=32k count=32768 >> /root/dd.log 2>&1
echo -e "-----begin 32k read-----n" >> /root/dd.log
dd iflag=direct if=/opt/1.dat of=/dev/null bs=32k count=32768 >> /root/dd.log 2>&1
echo -e "-----begin 32k read and write-----n" >> /root/dd.log
dd iflag=direct oflag=direct if=/opt/1.dat of=/opt/2.dat bs=32k count=32768 >> /root/dd.log 2>&1
echo -e "-----end 32k test-----n" >> /root/dd.log

rm -rf /opt/1.dat
rm -rf /opt/2.dat

echo -e "-----begin 64k test-----n" >> /root/dd.log
echo -e "-----begin 64k write-----n" >> /root/dd.log
dd oflag=direct if=/dev/zero of=/opt/1.dat bs=64k count=16384 >> /root/dd.log 2>&1
echo -e "-----begin 64k read-----n" >> /root/dd.log
dd iflag=direct if=/opt/1.dat of=/dev/null bs=64k count=16384 >> /root/dd.log 2>&1
echo -e "-----begin 64k read and write-----n" >> /root/dd.log
dd iflag=direct oflag=direct if=/opt/1.dat of=/opt/2.dat bs=64k count=16384 >> /root/dd.log 2>&1
echo -e "-----end 64k test-----n" >> /root/dd.log

rm -rf /opt/1.dat
rm -rf /opt/2.dat

echo -e "-----begin 128k test-----n" >> /root/dd.log
echo -e "-----begin 128k write-----n" >> /root/dd.log
dd oflag=direct if=/dev/zero of=/opt/1.dat bs=128k count=8192 >> /root/dd.log 2>&1
echo -e "-----begin 128k read-----n" >> /root/dd.log
dd iflag=direct if=/opt/1.dat of=/dev/null bs=128k count=8192 >> /root/dd.log 2>&1
echo -e "-----begin 128k read and write-----n" >> /root/dd.log
dd iflag=direct oflag=direct if=/opt/1.dat of=/opt/2.dat bs=128k count=8192 >> /root/dd.log 2>&1
echo -e "-----end 128k test-----n" >> /root/dd.log

rm -rf /opt/1.dat
rm -rf /opt/2.dat

echo -e "-----begin 256k test-----n" >> /root/dd.log
echo -e "-----begin 256k write-----n" >> /root/dd.log
dd oflag=direct if=/dev/zero of=/opt/1.dat bs=256k count=4096 >> /root/dd.log 2>&1
echo -e "-----begin 256k read-----n" >> /root/dd.log
dd iflag=direct if=/opt/1.dat of=/dev/null bs=256k count=4096 >> /root/dd.log 2>&1
echo -e "-----begin 256k read and write-----n" >> /root/dd.log
dd iflag=direct oflag=direct if=/opt/1.dat of=/opt/2.dat bs=256k count=4096 >> /root/dd.log 2>&1
echo -e "-----end 256k test-----n" >> /root/dd.log

rm -rf /opt/1.dat
rm -rf /opt/2.dat

echo -e "-----begin 512k test-----n" >> /root/dd.log
echo -e "-----begin 512k write-----n" >> /root/dd.log
dd oflag=direct if=/dev/zero of=/opt/1.dat bs=512k count=2048 >> /root/dd.log 2>&1
echo -e "-----begin 512k read-----n" >> /root/dd.log
dd iflag=direct if=/opt/1.dat of=/dev/null bs=512k count=2048 >> /root/dd.log 2>&1
echo -e "-----begin 512k read and write-----n" >> /root/dd.log
dd iflag=direct oflag=direct if=/opt/1.dat of=/opt/2.dat bs=512k count=2048 >> /root/dd.log 2>&1
echo -e "-----end 512k test-----n" >> /root/dd.log

rm -rf /opt/1.dat
rm -rf /opt/2.dat

echo -e "-----begin 1M test-----n" >> /root/dd.log
echo -e "-----begin 1M write-----n" >> /root/dd.log
dd oflag=direct if=/dev/zero of=/opt/1.dat bs=1M count=1024 >> /root/dd.log 2>&1
echo -e "-----begin 1M read-----n" >> /root/dd.log
dd iflag=direct if=/opt/1.dat of=/dev/null bs=1M count=1024 >> /root/dd.log 2>&1
echo -e "-----begin 1M read and write-----n" >> /root/dd.log
dd iflag=direct oflag=direct if=/opt/1.dat of=/opt/2.dat bs=1M count=1024 >> /root/dd.log 2>&1
echo -e "-----end 1M test-----n" >> /root/dd.log

rm -rf /opt/1.dat
rm -rf /opt/2.dat

echo -e "-----begin 2M test-----n" >> /root/dd.log
echo -e "-----begin 2M write-----n" >> /root/dd.log
dd oflag=direct if=/dev/zero of=/opt/1.dat bs=2M count=512 >> /root/dd.log 2>&1
echo -e "-----begin 2M read-----n" >> /root/dd.log
dd iflag=direct if=/opt/1.dat of=/dev/null bs=2M count=512 >> /root/dd.log 2>&1
echo -e "-----begin 2M read and write-----n" >> /root/dd.log
dd iflag=direct oflag=direct if=/opt/1.dat of=/opt/2.dat bs=2M count=512 >> /root/dd.log 2>&1
echo -e "-----end 2M test-----n" >> /root/dd.log

 5.4.网络IO性能测试

采用netperf工具对千兆网络、万兆网络分别进行网络IO性能测试,根据测试结果评估千兆网络、万兆网络的性能是否正常。
Netperf 是一种网络性能测量工具,主要基于 TCP 或 UDP 的传输。工作原理:
Netperf 工具以 client/server 方式工作。server 端是 netserver,用来侦听来自 client 端的连接,client 端是 netperf ,用来向 server 发起网络测试。

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可以看到集群管理节点、数据节点及各个服务状态,示例如下:

GBase 8a MPP Cluster分析型数据库在某行业典型实施部署方案

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两个用户:

GBase 8a MPP Cluster分析型数据库在某行业典型实施部署方案

创建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等,可以参考相关手册。

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

原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/318158.html

(0)
上一篇 1天前
下一篇 1天前

相关推荐

发表回复

登录后才能评论