1.1 软件版本
名称 | 版本 |
操作系统 | CentOS Linux release 7.9.2009 (Core) |
版本 | GreenPlum 6.1.0 |
1.2 集群介绍
使用1个master,n个segment的集群示例:
服务器IP地址 | 节点名称 |
172.168.10.2 | gp-master |
172.168.10.56 | gp-sdw1 |
其中172.168.10.2为master,其余为segment。
master节点GP安装
2.1.1修改 /etc/hosts文件
注意事项:(master节点的主机名必须要修改成gp-master )
在/etc/hosts文件添加所有节点地址和名称
2.1.2 修改 etc/sysconfig/network文件
HOSTNAME是master节点名称
2.1.3 修改 /etc/sysctl.conf文件
![\[root@gp-master ~\]# vi /etc/sysctl.conf
kernel.shmmni = 4096
kernel.shmall = 4000000000
kernel.sem = 250 512000 100 2048
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
net.ipv4.tcp_syncookies = 1
net.ipv4.ip_forward = 0
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.defalut.arp_filter = 1
net.ipv4.ip_local_port_range = 1025 65535
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.overcommit_memory = 2](https://img-blog.csdnimg.cn/20210702093521216.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNjcyMzAzOA==,size_16,color_FFFFFF,t_30)
2.1.4 修改 /etc/security/limits.d/90-nproc.conf文件
2.1.5 修改 /etc/security/limits.conf文件
[root@gp-master ~]# vi /etc/security/limits.conf
2.2 安装依赖和Greenplum 2.2.1 安装Gp依赖
安装扩展源
epel-release
批量安装依赖包 ,建议先安装gcc,再批量安装其他依赖包
yum -y install apr-devel \
bison \
bzip2-devel \
cmake3 \
flex \
gcc \
gcc-c++ \
krb5-devel \
libcurl-devel \
libevent-devel \
libkadm5 \
libxml2-devel \
libzstd-devel \
openssl-devel \
perl-ExtUtils-Embed \
python3-devel \
python3-pip \
readline-devel \
xerces-c-devel \
zlib-devel \
apr-util \
perl \
curl \
libnsl
2.2.2 安装GP
[root@gp-master ~]# mkdir -p /gpdb #创建GreenPlum文件夹
[root@gp-master ~]# yum -y install wget #安装wget
[root@gp-master ~]# wget -p https://github.com/greenplum-db/gpdb/releases/download/6.12.0/greenplum-db-6.1.0-ubuntu18.04-amd64.deb /gpdb #下载rpm安装包到/gpdb路径
[root@gp-master ~]# rpm -ivh --prefix=/gpdb /gpdb/greenplum-db-6.1.0-rhel7-x86_64.rpm #安装GreenPlum到/gpdb路径
三、segment节点GP安装
3.1 segment节点
在master节点复制配置文件和安装包到segment节点
[root@gp-master ~]# do scp /etc/hosts root@gp-sdw1:/etc/hosts ; done
[root@gp-master ~]# do scp etc/sysconfig/network root@gp-sdw1:etc/sysconfig/network ; done
[root@gp-master ~]# do scp /etc/sysctl.conf root@gp-sdw1:/etc/sysctl.conf ; done
[root@gp-master ~]# do scp /etc/security/limits.d/90-nproc.conf root@gp-sdw1:/etc/security/limits.d/90-nproc.conf ; done
[root@gp-master ~]# do scp /etc/security/limits.conf root@gp-sdw1:/etc/security/limits.conf ; done
[root@gp-master ~]# do scp /gpdb/greenplum-db-6.1.0-rhel7-x86_64.rpm root@gp-sdw1/gpdb ; done
[root@gp-master ~]# sysctl -p #使配置生效
3.2 segment节点安装GP依赖
注:与2.21小节相同
3.3 segment节点安装GP
```bash
mkdir /gpdb #创建GreenPlum文件夹
rpm -ivh --prefix=/gpdb /gpdb/greenplum-db-6.1.0-rhel7-x86_64.rpm #安装GreenPlum到/gpdb路径
## 配置集群免密连接
## 4.1 创建gpadmin用户
## 4.1.1 所有节点创建gpadmin用户
```bash
groupadd -g 530 gpadmin
useradd -g 530 -u 530 -m -d /home/gpadmin -s /bin/bash gpadmin
chown -R gpadmin:gpadmin /home/gpadmin
echo "gpadmin" | passwd --stdin gpadmin
4.1.2 所有节点修改gpadmin用户操作权限
chown -R gpadmin:gpadmin /gpdb
4.2 ssh免密配置(gpadmin用户)
4.2.1 所有节点创建.ssh文件
su - gpadmin #切换到gpadmin用户
ssh localhost #生成.ssh文件
4.2.2 所有节点生成公钥和私钥(gpadmin用户)
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
4.2.3 所有节点创建认证文件
在master节点生成authorized_keys文件,将authorized_keys文件复制到segment节点
[root@gp-master ~]# su - gpadmin
[gpadmin@gp-master ~]# cd /home/gpadmin/.ssh
[gpadmin@gp-master .ssh]# ssh-copy-id gp-master #生成authorized_keys文件
[gpadmin@gp-master .ssh]# do ssh gpadmin@gp-sdw1 cat /home/gpadmin/.ssh/id_rsa.pub >> /home/gpadmin/.ssh/authorized_keys; done #将segment节点公钥追加到master节点authorized_keys文件
[gpadmin@gp-master .ssh]# do scp /home/gpadmin/.ssh/authorized_keys gpadmin@gp-sdw1:/home/gpadmin/.ssh/authorized_keys ; done #将uthorized_keys文件复制到egment节点
4.2.4 所有节点重启ssh服务(root用户)
sudo systemctl restart sshd.service
4.3 打通集群节点
4.3.1 master节点创建hostlist和seg_hosts文件
hostlist文件包含所有节点名称
[root@gp-master ~]# su - gpadmin
[gpadmin@gp-master ~]# mkdir -p /home/gpadmin/conf
[gpadmin@gp-master ~]# vi /home/gpadmin/conf/hostlist
gp-master
gp-sdw1
gp-sdw2
[gpadmin@gp-master ~]# vi /home/gpadmin/conf/seg_hosts
gp-sdw1
gp-sdw2
gp-sdw3
gp-sdw4
4.3.2 配置节点免密连接
[root@gp-master ~]# su - gpadmin
[gpadmin@gp-master ~]$ source /gpdb/greenplum-db/greenplum_path.sh
[gpadmin@gp-master ~]$ gpssh-exkeys -f /home/gpadmin/conf/hostlist
completed successfully 测试免密连接
[gpadmin@gp-master ~]$ gpssh -f /home/gpadmin/conf/hostlist
=> pwd
[ gp-sdw1] /home/gpadmin
=> exit
五、初始化GreenPlum集群
5.1 环境配置
5.1.1 添加gp编译的python包
注意lib-python的版本
[root@gp-master ~]# echo "/gpdb/greenplum-db/lib/python" > /usr/lib64/python3.6/site-packages/greenplum.pth
[root@gp-master ~]# vi /etc/ld.so.conf
/gpdb/greenplum-db/lib
[root@gp-master ~]# ldconfig
5.1.2 创建资源目录
[root@gp-master ~]# su - gpadmin
[gpadmin@gp-master ~]$ mkdir -p /gpdb/opt/data/master #在master节点创建资源目录
#在segment节点创建资源目录
[gpadmin@gp-master ~]$ source /gpdb/greenplum-db/greenplum_path.sh
[gpadmin@gp-master ~]$ gpssh -f /home/gpadmin/conf/seg_hosts
=> mkdir -p /gpdb/opt/data1/primary
[gp-sdw1]
=> mkdir -p /gpdb/opt/data1/mirror
[gp-sdw1]
=> exit
---------按需求创建
5.1.3 master节点配置环境变量
在master节点/home/gpadmin/.bash_profile添加内容
[gpadmin@gp-master ~]$ vi /home/gpadmin/.bash_profile
添加
source /gpdb/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/gpdb/opt/data/master/gpseg-1
export GPPORT=5432
export PGDATABASE=gp_sydb
将.bash_profile复制到segment节点
[gpadmin@gp-master ~]$ do scp /home/gpadmin/.bash_profile
让变量生效
=> source .bash_profile
[ gp-sdw1
]
=> exit
5.1.4 NTP配置
[root@gp-master ~]# echo "server gp-master perfer" >>/etc/ntp.conf
[root@gp-master ~]# su - gpadmin
[gpadmin@gp-master ~]$ gpssh -f /home/gpadmin/conf/hostlist -v -e 'sudo ntpd'
[gpadmin@gp-master ~]$ gpssh -f /home/gpadmin/conf/hostlist -v -e 'sudo /etc/init.d/ntpd start && sudo chkconfig --level 35 ntpd on'
5.2 初始化数据库
5.2.1 检查节点间连通性
[gpadmin@gp-master ~]$ cd /gpdb/greenplum-db/bin
[gpadmin@gp-master bin]$ gpcheckperf -f /home/gpadmin/conf/hostlist -r N -d /tmp
5.2.2 创建Greenplum初始化配置文件
[gpadmin@gp-master ~]$ cd /gpdb/greenplum-db/docs/cli_help/gpconfigs
[gpadmin@gp-master gpconfigs]$ cp gpinitsystem_config initgp_config #复制配置文件模板
[gpadmin@gp-master gpconfigs]$ vi initgp_config #修改配置文件
#资源目录,与5.1.2章节保持一致
declare -a DATA_DIRECTORY=(/gpdb/opt/data1/primary /gpdb/opt/data2/primary)
declare -a MIRROR_DATA_DIRECTORY=(/gpdb/opt/data1/mirror /gpdb/opt/data2/mirror) #取消注释
ARRAY_NAME=”gp_sydb” #5.1.3章节配置的初始化数据库名称
MASTER_HOSTNAME=gp-master #主节点名称
MASTER_DIRECTORY=/gpdb/opt/data/master #在5.1.2章节创建的资源目录
MASTER_DATA_DIRECTORY=/gpdb/opt/data/master/gpseg-1 #与5.1.2章节配置一样
MIRROR_PORT_BASE=7000 #取消注释
DATABASE_NAME=gp_sydb #取消注释;5.1.3章节配置的初始化数据库名称
MACHINE_LIST_FILE=/home/gpadmin/conf/seg_hosts #取消注释;4.3.1章节创建的segment节点名称文件
所有节点更新gpadmin用户操作权限
chown -R gpadmin:gpadmin /gpdb
5.3 初始化和登录
5.3.1 执行初始化
集群初始化
[gpadmin@gp-master ~]$ cd /gpdb/greenplum-db/docs/cli_help/gpconfigs
[gpadmin@gp-master gpconfigs]$ gpinitsystem -c initgp_config
查看集群状态
gpstate -e #查看mirror的状态
gpstate -f #查看standby master的状态
gpstate -s #查看整个GP群集的状态
gpstate -i #查看GP的版本
gpstate --help #帮助文档,可以查看gpstate更多用法
5.3.2 数据库登录
完成初始化后登录数据库
psql -d postgres
postgres=# \l #查询数据库
设置远程访问密码
登录后输入
alter user gpadmin encrypted password 'password';
配置数据库白名单
[gpadmin@gp-master ~]$ vi /gpdb/opt/data/master/gpseg-1/pg_hba.conf #在master资源目录pg_hba.conf文件中添加白名单
输入 gpstop -u 生效
启动和停止Greenplum数据库
启动Greenplum数据库
gpstart
重新启动Greenplum数据库,停止Greenplum数据库系统,然后重新启动它。
gpstop -r
仅重新加载配置文件更改,将更改重新加载到Greenplum数据库配置文件,而不会中断系统。
gpstop -u
在维护模式下启动主机,仅启动主服务器以执行维护或管理任务,而不会影响段上的数据。
gpstart -m
停止Greenplum数据库
gpstop
要以快速模式停止Greenplum数据库
gpstop -M fast