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