GreenPlum系列-2-集群安装部署(Centos7+GP6.18)

2023-03-21 00:00:00 集群 执行 节点 初始化 安装

目录

一、基础环境

二、集群安装

三、问题记录

本文主要记录基于centos7 64位的gp-6.18安装部署,包括集群安装、集群切换测试、监控安装。

一、基础环境
1、机器分布


        

注:

A、集群部署方式

部分 单master 多segment 集群。

第二部分 双master多segment 集群。

第三部分 GPCC 监控安装

B、master 镜像standby、segment 镜像 mirror。

C、为Master节点搭建Standby的过程中,GreenPlum会自动关闭数据库,并以utility模式打开Master节点,然后修改gp_segment_configuration字典中增加Standby的信息,然后再关闭Master节点,将Master的数据拷贝到Standby节点,后启动数据库,所以,在为Master节点添加Standby时,需要在空闲时段进行,否则会影响业务。

2、基础环境

系统初始化配置

#cat /etc/sysctl.conf

kernel.shmmax = 500000000

kernel.shmmni = 4096

kernel.shmall = 4000000000

kernel.sem = 500 2048000 200 4096

kernel.sysrq = 1

kernel.core_uses_pid = 1

kernel.msgmnb = 65536

kernel.msgmax = 65536

kernel.msgmni = 2048

fs.file-max = 800000

fs.aio-max-nr = 196608

net.ipv4.tcp_syncookies = 1

net.ipv4.ip_forward = 0

net.ipv4.conf.default.accept_source_route = 0

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_max_syn_backlog = 4096

net.ipv4.conf.all.arp_filter = 1

net.ipv4.ip_local_port_range = 10000 65535

net.core.netdev_max_backlog = 10000

net.core.rmem_max = 2097152

net.core.wmem_max = 2097152

vm.overcommit_memory = 2

vm.overcommit_ratio = 95

vm.swappiness = 0

vm.zone_reclaim_mode = 0

vm.dirty_expire_centisecs = 500

vm.dirty_writeback_centisecs = 100

vm.dirty_background_ratio = 0

vm.dirty_ratio = 0

vm.dirty_background_bytes = 1610612736

vm.dirty_bytes = 4294967296

vm.max_map_count = 1966080

net.ipv4.neigh.default.gc_stale_time = 120

net.ipv4.conf.default.rp_filter = 0

net.ipv4.conf.all.r

#cat /etc/security/limits.conf

* soft nofile 800000

* hard nofile 800000

* soft nproc 131072

* hard nproc 131072

#cat /etc/sysconfig/selinux

SELINUX=disabled

#setenforce 0

#getenforce 查看Permissive

3、安装依赖

#yum install zlib libevent bzip2 krb5-devel libyaml rsync zip ntp* ed apr-util -y

4、免密配置

#cat /etc/hosts

192.168.153.159 master1

192.168.153.162 master2

192.168.153.160 segment1

192.168.153.161 segment2

配置密钥(我测试的时候 root、gpadmin 都做了免密)

#ssh-keygen –t rsa –b 2048

#ssh-copy –i .ssh/id_rsa master1 segment1 segment2

5、创建账户

#groupadd gpadmin

#useradd -g gpadmin -m -d /home/gpadmin -s /bin/bash gpadmin

#password gpadmin

6、下载软件

#wget https://github-releases.githubusercontent.com/44781140/55b87bd3-6b35-4ebe-9de4-96aa218076eb?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20211014%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20211014T032006Z&X-Amz-Expires=300&X-Amz-Signature=fa4cf20435c47e4d4f73bf6438148c0c9e684e4f1c443019e2d62750d4f9da79&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=44781140&response-content-disposition=attachment%3B%20filename%3Dopen-source-greenplum-db-6.18.0-rhel7-x86_64.rpm&response-content-type=application%2Foctet-stream

7、Ntp 服务

#cat /etc/ntp.conf 后增加一行

server master1 perfer

#systemctl restart ntpd

二、集群安装
部分单master集群安装部署

1、master 安装配置

1.1 安装greenplume

#rpm -ivh open-source-greenplum-db-6.18.0-rhel7-x86_64.rpm

默认安装目录/usr/local

1.2 赋权

#chown –R gpadmin.gpadmin /usr/local/greenplum-db-6.18

1.3 创建集群host

切换到 gpadmin

#mkdir /home/gpadmin/conf

#cat hostlist

master1

master2

segment1

segment2

#cat seg_hosts

segment1

segment2

1.4 配置免密

#source /usr/local/greenplum-db/greenplum_path.sh

#gpssh-exkeys -f /home/gpadmin/conf/hostlist

测试免密

#gpssh –f /home/gpadmin/conf/hostlist

=>pwd

1.5 创建资源目录

#gpssh –f /home/gpadmin/conf/hostlist

=>mkdir –p /opt/greenplum/data/{master,primary,mirror}

=>mkdir –p /opt/greenplum/data2/{primary,mirror}

=>chown –R gpadmin.gpadmin /opt/greenplum

1.6 修改环境变量

#cat /home/gpadmin/.bash_profile

增加

#source /usr/local/greenplum-db/greenplum_path.sh #这里注释掉是为了解决master 安装完后,默认的python 环境被替换问题。

export MASTER_DATA_DIRECTORY=/opt/greenplum/data/master/gpseg-1

export GPPORT=5432

export PGDATABASE=gp_sydb

2、segment 配置

2.1 安装greenplum

将master 的greenplum 拷贝到segment 节点上,并作软连接。

2.2 配置环境变量

将master 的/home/gpadmin/.bash_profile 拷贝到segment

3、初始化数据库

3.1 检查节点之间连通性

Master节点执行

#gpcheckperf -f /home/gpadmin/conf/hostlist -r N -d /tmp



3.2 执行初始化

初始化 Greenplum 配置文件模板都在/usr/local/greenplum-db/docs/cli_help/gpconfigs目录下,gpinitsystem_config是初始化 Greenplum 的模板,此模板中 Mirror Segment的配置都被注释;创建一个副本,对其以下配置进行修改:

#cp gpinitsystem_config initgp_config

#cat initgp_config

ARRAY_NAME="gp_sydb"

SEG_PREFIX=gpseg

PORT_BASE=6000

declare -a DATA_DIRECTORY=(/opt/greenplum/data/primary /opt/greenplum/data/primary /opt/greenplum/data/primary /opt/greenplum/data2/primary /opt/greenplum/data2/primary /opt/greenplum/data2/primary)

MASTER_HOSTNAME=master1

MASTER_DIRECTORY=/opt/greenplum/data/master

MASTER_DATA_DIRECTORY=/opt/greenplum/data/master/gpseg-1

MASTER_PORT=5432

TRUSTED_SHELL=ssh

CHECK_POINT_SEGMENTS=8

ENCODING=UNICODE

declare -a MIRROR_DATA_DIRECTORY=(/opt/greenplum/data/mirror /opt/greenplum/data/mirror /opt/greenplum/data/mirror /opt/greenplum/data2/mirror /opt/greenplum/data2/mirror /opt/greenplum/data2/mirror)

DATABASE_NAME=gp_sydb

MACHINE_LIST_FILE=/home/gpadmin/conf/seg_hosts

执行初始化命令

#gpinitsystem -c initgp_config –D

如果没有报错,则执行成功;如果有报错,则需要根据错误修复问题,并将创建的数据目录清理,重建后在执行该初始化命令。

4、添加mirror

新建的集群只有primary 节点,没有mirror 节点。当然也可以通过初始化创建mirror 。在3.2 配置文件中新增 MIRROR_PORT_BASE=7000。这里是在已经存在的GP集群中增加mirror。

可以通过gpstate –e / gpstate –m 等命令查看。



也可以通过sql :

gp_sydb=# SELECT * from gp_segment_configuration ;



4.1 创建mirror 数据目录

在所有需要添加mirror 的主机上,创建存放mirror 的数据目录(之前有创建过)。

4.2 生成addmirror文件

在master 节点上执行gpaddmirrors命令,键入存放mirror节点的日志,生成配置文件。

# gpaddmirrors -o ./addmirror #输入的目录和之前创建的目录对应上。



文件内容



4.3 添加mirror

#gpaddmirrors –i addmirror

没有报错则说明成功。

4.4 查看集群状态

#gpstate –m #受测试环境资源限制,我测试的时候只成功了一半。



5、基础命令

5.1、数据库操作命令

gpstart # 启动数据库

gpstop –r # 重启

gpstop –u # 重新加载配置文件,不重启数据库

gpstop # 停止数据库

psql –d dbname # 连接数据库

5.2、集群检查命令

gpstate -e #查看mirror的状态

gpstate -f #查看standby master的状态

gpstate -s #查看整个GP群集的状态

gpstate -i #查看GP的版本

gpstate –m #查看集群mirror 配置和同步状态

gpstate –p #查看primary mirror 的安装目录和端口

gpstate --help #帮助文档,可以查看gpstate更多用法

第二部分 master standby 安装配置

参考https://blog.51cto.com/michaelkang/2317753

1、基础安装

系统参数配置、依赖、软件、数据目录、免密登陆等 和master 保持一致。另外所有节点的hosts文件均需增加 master2 的ip地址映射。具体如下:

1:新建gpadmin 用户,用户id 与集群节点保持一直;

2:新建数据目录,chown gpadmin.gpadmin $DIR;

3:集群所有主机(Master节点和所有Segment节点)的hosts文件均需要添加Standby主机的信息。

4:完成系统初始化(关闭防火墙,selinux ,sysctl.conf ,limits.conf ...),具体参考greenplum 集群安装初始化安装步骤;

5:直接打通master节点 ssh 免密登陆新添加standby ;

6:standby节点 ssh 免密登陆集群其它节点,通过gpssh工具测试;

7:安装greenplum 软件包

8:检查新添加standby 节点安装目录权限,chown gpadmin.gpadmin $DIR

9:设置standby 节点gpadmin账户的环境变量,使之生效;

2、添加standby 节点

在确定上述基础安装没问题后,在master 节点执行添加standby 节点命令。

#source /usr/local/greenplum-db/greenplum_path.sh

#gpinitstandby –s master2



3、集群验证

3.1 集群状态验证

master节点查看standby 状态

#gpstate –f



3.2 master standby 节点切换

3.2.1、查看集群状态

#gpstate -f



3.2.2、模拟master1 down

# pg_ctl stop -s -m fast -D /opt/greenplum/data/master/gpseg-1



3.2.3、Standby 节点修改配置文件

#cat .bash_profile

增加一行

export PGPORT=5432

3.2.4 激活standby (master2)节点为master 节点

#source /usr/local/greenplum-db/greenplum_path.sh

#source /home/gpadmin/.bash_profile

#gpactivatestandby -d $MASTER_DATA_DIRECTORY

输入gpadmin 密码



3.2.5 验证

#gpstate –f # 可以看到集群状态正常,但是没有standby节点



连接数据库验证



3.2.6 将master1 修改为standby 节点

Master1 将gpseg-1 目录移除

#/opt/greenplum/data/master/ && mv gpseg-1 gpseg-1.bak

Master2 上添加master1 为 standby 节点

# source /usr/local/greenplum-db/greenplum_path.sh

# gpinitstandby -s master1

执行gpstate –s 查看

这里需要输入密码,因为之前没有做 master2 和master1 之间的认证。



第三部分 GPCC监控安装

1、GPCC 介绍

GPCC全称Greenplum Command Center,是Greenplum自带的一个监控工具,可以查看Greenplum服务器的CPU,磁盘,网络等信息,还可以查看执行的SQL语句,非常方便。

安装GPCC一定要与自己的Greenplum版本对应,否则不会正常工作。下面是一下安装需要用的一些链接地址:

Installing Pivotal Greenplum Command Center | Tanzu™ Greenplum GPCC Docs 安装文档

Pivotal Greenplum Command Center Supported Platforms | Tanzu™ Greenplum GPCC Docs 对应关系

Download VMware Tanzu™ Greenplum® Command Center — VMware Tanzu Network 下载地址



2、GPCC 安装

2.1创建目录

#gpssh –f /home/gpadmin/conf/hostlist

=>mkdir –p /usr/local/greenplum-cc-6.5.0

=>chown –R gpadmin.gpadmin /usr/local/greenplum-cc-6.5.0

=>ln –s /usr/local/greenplum-cc-6.5.0 /usr/local/greenplum-cc

2.2 安装软件

解压后执行

#cd greenplum-cc-web-6.5.0-gp6-rhel7-x86_64

# gpccinstall-6.5.0 –W #-W 创建gpmon数据账户,并手动添加密码

注:这里执行完后,正常情况,其他节点也会被安装



2.3 配置认证

master pg_hba.conf

添加:

local all gpmon md5

2.4 重载gp 配置文件

#gpstop –u

2.5 启动gpcc

# gpcc start –W

使用浏览器输入GPCC服务器地址,端口号28080登录WEB控制台,用户名密码为gpmon/123456 (安装的时候配置的密码)我的测试环境资源有限,会看到有些mirror进程是失败的。





三、问题记录
1、python 环境修复

master 安装完后发现本地的yum 命令无法使用,提示没有yum 模块,经查yum 命令使用的python 环境被修改。通过which python 命令发现python 路径变成/usr/local/greenplum-db-6.18.0/ext/python/bin/python

修复方式:

将/home/gpadmin/.bash_profile 增加的一行注释掉,后续使用greenplum 相关的命令时使用路径或者手动执行该命令。

#source /usr/local/greenplum-db/greenplum_path.sh

2、初始化报错

执行初始化命令时gpinitsystem -c initgp_config –D, 一直报:

Total processes marked as failed

检查 selinux , limits ,均正常。 网上搜索缺少ed依赖报,安装后解决。原因暂时未知。

3、Greenplum 端口修改后,执行psql 错误

执行psql –p 端口

4、操作元数据报错

ERROR: permission denied: "gp_segment_configuration" is a system catalog

大量的信息保存在元数据中,所有的元数据都是内部维护的,例如建表、建索引、删表等操作,自动维护元数据。如果需要直接对元数据进行修改,则需要打开元数据修改开关。

# show allow_system_table_mods; #默认是关闭

# set allow_system_table_mods=’on’;

参考 greenplum常见问题及解决方法_q936889811的博客-CSDN博客

5、删除mirror

参考 :https://www.cnblogs.com/xibuhaohao/p/11339647.html

打开元数据修改

# set allow_system_table_mods='on';

查询元数据

# select * from gp_segment_configuration;

删除mirror

# delete from gp_segment_configuration where dbid between 15 and 26;

删除数据文件

#rm –fr /opt/greenplum/data/mirror/*

#rm –fr /opt/greenplum/data2/mirror/*

然后在重新执行创建mirros 命令。


本文来源:https://blog.csdn.net/weixin_42633805/article/details/120641386

相关文章