Greenplum 6.17 集群搭建

2023-03-13 00:00:00 修改 用户 文件 节点 添加

Greenplum 6.17 集群搭建
一、集群规划


二、环境说明


三、安装前准备
1、虚拟机小安装需要的其他工具
sudo yum install -y epel-release
sudo yum install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree iotop git

2、修改系统文件
修改系统资源限制,/etc/security/limits.conf 文件添加以下信息

* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

修改系统内核信息,/etc/sysctl.conf 文件添加以下信息:

# kernel.shmall用以下命令计算 echo $(expr $(getconf _PHYS_PAGES) / 2)
kernel.shmall = 357475
# kernel.shmmax用以下命令计算 echo $(expr $(getconf _PHYS_PAGES) / 2 \* $(getconf PAGE_SIZE))
kernel.shmmax = 1464217600
kernel.shmmni = 4096
vm.overcommit_memory = 2
vm.overcommit_ratio = 95

kernel.sem = 500 2048000 200 4096
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.arp_filter = 1
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.swappiness = 10
vm.zone_reclaim_mode = 0
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
vm.dirty_background_ratio = 3
vm.dirty_ratio = 10


修改完毕后执行命令立即生效

sysctl -p

修改/etc/security/limits.d/下的 **-nproc.conf 文件为(该文件名称可能为20-nproc.conf 或 90-nproc.conf):

* soft nproc 131072

3、关闭防火墙
关闭防火墙

systemctl stop firewalld

关闭防火墙自启

systemctl disable firewalld

查看防火墙状态

systemctl status firewalld

systemctl is-enabled firewalld

关闭 selinux,修改/etc/sysconfig/selinux:

SELINUX=disabled

配置生效

setenforce 0

4、配置host
修改/etc/hostname

5、添加用户群组
添加 gpadmin 用户群组并赋予相应权限

# 添加群组
groupadd -g 530 gpadmin
# 添加用户
useradd -g 530 -u 530 -m -d /home/gpadmin -s /bin/bash gpadmin
# 更改所有者
chown -R gpadmin:gpadmin /home/gpadmin
# 修改密码
passwd gpadmin

为用户分配sudo执行权限

visudo

在“root ALL=(ALL) ALL”后面添加
gpadmin ALL=(ALL) ALL

==============================================

克隆其余两台虚拟机,修改ip和host

修改host对应的文件: /etc/hostname
修改ip对应的文件: /etc/sysconfig/network-scripts(一般是ifcfg-ens33)

===============================================

四、安装前配置
1、添加host映射
在 /etc/hosts中添加集群host和ip

192.168.2.20 master
192.168.2.21 segment1
192.168.2.22 segment2

2、ssh免密登录(gpadmin用户)
生成秘钥(三个节点)

ssh-keygen -t rsa

segment节点公钥发送master节点

# segment1公钥复制
cp ~/.ssh/id_rsa.pub ~/.ssh/segment1_id_rsa.pub
# segment2公钥复制
cp ~/.ssh/id_rsa.pub ~/.ssh/segment1_id_rsa.pub
# segment1公钥发送
scp ~/.ssh/segment1_id_rsa.pub master:~/.ssh
# segment2公钥发送
scp ~/.ssh/segment2_id_rsa.pub master:~/.ssh

master节点公钥合并

cat id_rsa.pub segment1_id_rsa.pub segment2_id_rsa.pub >> authorized_keys

master节点合并公钥发送

scp ~/.ssh/authorized_keys segment1:~/.ssh
scp ~/.ssh/authorized_keys segment2:~/.ssh

修改权限

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

3、创建master节点配置文件
切换到gpadmin用户

su - gpadmin

创建配置文件夹

mkdir -p /home/gpadmin/conf

创建 hostlist并编辑文件

vim /home/gpadmin/conf/hostlist

master
segment1
segment2

创建 seg_hosts 文件并编辑

vim /home/gpadmin/conf/seg_hosts

segment1
segment2

五、安装(gpadmin用户)
三台机器分别都安装 greenplum 到指定目录

rpm -ivh --prefix=/usr/local/services/greenplum/ open-source-greenplum-db-6.17.2-rhel7-x86_64.rpm

按照提示安装所需的依赖

eg(某次安装缺少的依赖包):
sudo yum install -y bzip2 libyaml zip libevent

在master节点,切换为root用户,greenplum 配置免密连接

source /usr/local/services/greenplum/greenplum-db/greenplum_path.sh
gpssh-exkeys -f /home/gpadmin/conf/hostlist

批量创建数据目录,并授权

# 免密连接,三台机器批量操作
gpssh -f /home/gpadmin/conf/hostlist

mkdir -p /opt/greenplum/data/master
mkdir -p /opt/greenplum/data/primary
mkdir -p /opt/greenplum/data/mirror
mkdir -p /opt/greenplum/data2/primary
mkdir -p /opt/greenplum/data2/mirror

# 对用户授权
chown -R gpadmin:gpadmin /usr/local
chown -R gpadmin:gpadmin /opt

配置 gpadmin 用户的环境变量

# 打开文件
vim /home/gpadmin/.bash_profile

# 添加的内容
source /usr/local/services/greenplum/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/opt/greenplum/data/master/gpseg-1
export GPPORT=5432
export PGDATABASE=gp_sydb

# 应用改变,立即生效
source /home/gpadmin/.bash_profile

六、初始化数据库
切换到gpadmin用户,新建一个初始化配置文件 initgp_config

cd /usr/local/services/greenplum/greenplum-db/docs/cli_help/gpconfigs
cp gpinitsystem_config initgp_config

修改配置文件 initgp_config

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

ARRAY_NAME=”gp_sydb” #初始化数据库名称
MASTER_HOSTNAME=centos01 #主节点名称
MASTER_DIRECTORY=/opt/greenplum/data/master #资源目录为之前创建的资源目录
MASTER_DATA_DIRECTORY=/opt/greenplum/data/master/gpseg-1
DATABASE_NAME=gp_sydb #配置的初始化数据库名称
MACHINE_LIST_FILE=/home/gpadmin/conf/seg_hosts

切换 gpadmin 用户,执行初始化(必须使用之前创建的用户操作,不能在root用户下操作)

source /usr/local/services/greenplum/greenplum-db/greenplum_path.sh
gpinitsystem -c initgp_config -D

此步骤如果出错的话,需要将初始化生成的 gpseg 文件全部删除,重新开始初始化(/opt/greenplum/data/ /opt/greenplum/data2内primary、master内的创建的 gpseg-1等),具体的错误信息可以在 /home/gpadmin/gpAdminLogs 内的日志查看

七、Greenplum连接外部客户端
修改主节点下的 /opt/greenplum/data/master/gpseg-1/pg_hba.conf 配置文件

# 添加一行内容,表示允许任何用户连接
host all all 0.0.0.0/0 trust

八、数据库操作
命令 意义
gpstart 启动数据库
gpstop -r 重启
gpstop -u 仅重新载入配置文件的更改
gpstop 停止数据库
psql -d gp_sydb 登录 gp_sydb 数据库

本文来源:https://blog.csdn.net/m0_51192710/article/details/123116872

相关文章