greenplum集群安装手册
环境说明
操作系统是centos 7
一共三台服务器,一台master节点(主机名为gp-master),两台segment节点(主机名为gp-seg1和gp-seg2),没有standby节点
服务器配置(三台服务器都要执行)
安装依赖
yum install -y apr apr-util bash bzip2 curl krb5 libcurl libevent libxml2 libyaml zlib openldap openssh-client openssl openssl-libs perl readline rsync R sed tar zip krb5-devel
如果提示zlib安装失败就先执行以下命令再执行上面的
yum install --setopt=protected_multilib=false zlib
关闭selinux
cat /etc/selinux/config |grep ^SELINUX=
如果不是SELINUX=disabled
,就通过vi /etc/selinux/config
修改
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
调整系统资源限制
修改文件/etc/security/limits.conf
* soft nproc 131072
* hard nproc 131072
* soft nofile 524288
* hard nofile 524288
修改文件/etc/security/limits.d/20-nproc.conf
* soft nproc 131072
修改文件/etc/rc.d/rc.local,再添加执行权限chmod +x /etc/rc.d/rc.local
/sbin/blockdev --setra 16384 /dev/sda
禁用透明大页面
grubby --update-kernel=ALL --args="elevator=deadline"
grubby --update-kernel=ALL --args="transparent_hugepage=never"
IPC对象移除
编辑/etc/systemd/logind.conf
echo 'RemoveIPC=no' >> /etc/systemd/logind.conf
service systemd-logind restart
调整ssh连接阈值
修改/etc/ssh/sshd_config,并执行systemctl restart sshd
使配置生效
MaxSessions 200
MaxStartups 100:30:1000
同步集群时钟(NTP)
# 所有服务器安装ntp
yum install ntp -y
# master服务器修改文件/etc/ntp.conf
server 本机IP
# segment服务器修改文件/etc/ntp.conf
server gp-master
# 启动ntp服务并设置开机启动
systemctl enable ntpd
systemctl start ntpd
集群安装
创建gpadmin(三台服务器)
groupadd gpadmin
useradd gpadmin -r -m -g gpadmin
passwd gpadmin
安装greenplum(三台服务器)
通过https://github.com/greenplum-db/gpdb/releases下载需要的安装包,本文使用open-source-greenplum-db-6.26.3-rhel7-x86_64.rpm
yum install ./open-source-greenplum-db-6.26.3-rhel7-x86_64.rpm
修改权限chown -R gpadmin:gpadmin /usr/local/greenplum*
lrwxrwxrwx 1 gpadmin gpadmin 30 Mar 7 16:43 greenplum-db -> /usr/local/greenplum-db-6.26.3
drwxr-xr-x 11 gpadmin gpadmin 238 Mar 7 16:43 greenplum-db-6.26.3
修改ssh端口(三台服务器)
生产环境ssh端口可能不是22,就需要修改配置文件/etc/ssh/ssh_config
Host *
Port 22222
ssh免密登陆(三台服务器)
# 登录gpadmin账号
cd /home/gpadmin
su gpadmin
# 生成密钥
ssh-keygen -t rsa -b 4096
# 把密钥复制到其他两台服务器
ssh-copy-id gp-seg1
ssh-copy-id gp-seg2
初始化数据库(master服务器)
cd /home/gpadmin
su gpadmin
新增配置文件
gpconfigs/
├── all_host
├── gpinitsystem_config
└── seg_host
all_host内容为
gp-master
gp-seg1
gp-seg2
seg_host内容为
gp-seg1
gp-seg2
gpssh验证
gpssh -f gpconfigs/all_host -e 'free'
集群的网络性能测试
gpcheckperf -f gpconfigs/seg_host -r N -d /tmp
gpinitsystem_config内容为
ARRAY_NAME="Greenplum Data Platform"
SEG_PREFIX=gpseg
PORT_BASE=6000
declare -a DATA_DIRECTORY=(/home/gpadmin/data1/primary /home/gpadmin/data2/primary)
MASTER_HOSTNAME=gp-master
MASTER_DIRECTORY=/home/gpadmin/data/master
MASTER_PORT=5432
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UNICODE
MIRROR_PORT_BASE=7000
declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/data1/mirror /home/gpadmin/data2/mirror)
集群初始化
cd /home/gpadmin
su gpadmin
master服务器创建文件夹
data/master
segment服务器创建文件夹
mkdir -p data1/primary
mkdir -p data2/primary
mkdir -p data1/mirror
mkdir -p data2/mirror
修改文件/home/gpadmin/.bash_profile
source /usr/local/greenplum-db/greenplum_path.sh
修改文件/home/gpadmin/.bashrc
source /usr/local/greenplum-db/greenplum_path.sh
执行命令source /usr/local/greenplum-db/greenplum_path.sh
master服务器初始化数据
gpinitsystem -c gpconfigs/gpinitsystem_config -h gpconfigs/seg_host
初始化成功后提示:Greenplum Database instance successfully created
如果初始化有误,可以使用命令gpdeletesystem进行删除
gpdeletesystem -d /home/gpadmin/data/master/gpseg-1 -f
日志文件可以在gpAdminLogs目录查看
登陆数据库
登录数据库postgres
psql postgres
查看数据库
\l
创建数据库
create database test;
区分大小写可以使用双引号
create database "testDatabase";
修改用户密码
alter user gpadmin with password 'new password';
配置远程登录,修改文件/home/gpadmin/data/master/gpseg-1/pg_hba.conf,添加一条规则
host all gpadmin 0.0.0.0/0 md5
重新加载配置文件
gpstop -u
现在就可以通过gpadmin远程登录了。