Greenplum集群部署安装指南

2023-03-17 00:00:00 创建 用户 执行 配置 安装

目录

一.官方安装链接

二.Greemplum安装文件下载

三.数据库安装步骤

1.准备工作

(1)修改hostname

(2)关闭SELinux

(3)关闭防火墙

(4)配置/etc/hosts

(5)修改内核配置参数

(6)配置资源限制参数

(7)磁盘I/O设置

(8)IPC Object Removal

(9)SSH连接阈值

(10)同步系统时钟

(11)创建用户和用户组

(12)创建swap文件

2.安装Greenplum

(1)安装gpdb

(2)设置免密登录

(3)上创建hostlist、standby_seg_hosts、seg_only

(4)使用gpssh-exkeys打通所有服务器

(5)确认安装

3.创建数据存储区

(1)在master机器上创建数据存储区

(2)在stand by机器上创建数据存储区

(3)在segment机器上创建数据存储区

4.初始化数据库

(1)创建初始化配置文件

(2)执行安装

(3)配置环境变量

(4)允许客户端连接

四.Command Center安装步骤

1.准备工作

(1)修改配置文件

(2)安装gpperfmon数据库,以及为gpmon用户创建密码

(3)创建安装目录

2.安装Greenplum CC

一.官方安装链接
Greenplum

Configuring Your Systems | Pivotal Greenplum Docs

Greenplun Command Center

Installing and Upgrading Pivotal Greenplum Command Center | Tanzu™ Greenplum GPCC Docs

二.Greemplum安装文件下载
Greenplum - greenplum-db-6.11.1-rhel7-x86_64.rpm

https://download.csdn.net/download/qq_29120661/34674895

Greenplum Command Center - greenplum-cc-web-6.3.0-gp6-rhel7-x86_64.zip

https://download.csdn.net/download/qq_29120661/34675048

三.数据库安装步骤
1.准备工作
(1)修改hostname
命名规则:
主机:mdw
stand by: smdw
sgement:sdw1,sdw2,sdw3...

hostnamectl set-hostname mdw
(2)关闭SELinux
使用下面命令,查看状态

sestatus
如果不是SELinuxstatus: disabled,则需要手动关闭

Shell复制代码

vi /etc/selinux/config
SELINUX=disabled
(3)关闭防火墙
查看防火墙状态
如果是iptables,则执行

service iptables status
关闭防火墙

service iptables stop
永-久关闭防火墙

chkconfig iptables off
如果是firewalld,则执行

systemctl status firewalld
关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service
(4)配置/etc/hosts
每一台都要配置

vim /etc/hosts
192.168.xxx.1 mdw
192.168.xxx.2 smdw
192.168.xxx.3 sdw1
192.168.xxx.4 sdw2
192.168.xxx.5 sdw3
192.168.xxx.6 sdw4
(5)修改内核配置参数
每一台都要配置(如果所有节点配置相同,可以先配置主机,配置好后分发到各个节点中)
执行getconf _PHYS_PAGES获取系统的_PHYS_PAGES
执行getconf PAGE_SIZE获取系统的PAGE_SIZE
vim /etc/sysctl.conf

kernel.shmall = _PHYS_PAGES / 2 ###根据实际情况修改
kernel.shmmax = kernel.shmall * PAGE_SIZE ###根据实际情况修改
kernel.shmmni = 4096
vm.overcommit_memory = 2
vm.overcommit_ratio = 95

net.ipv4.ip_local_port_range = 10000 65535
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

###对于内存大于64G的机器,增加下面四个配置
vm.dirty_background_ratio = 0
vm.dirty_ratio = 0
vm.dirty_background_bytes = 1610612736
vm.dirty_bytes = 4294967296
###################################
###对于内存小于64G的机器,增加下面两个配置
vm.dirty_background_ratio = 3
vm.dirty_ratio = 10
###################################

保存文件后,执行下面命令

awk 'BEGIN {OFMT = "%.0f";} /MemTotal/ {print "vm.min_free_kbytes =", $2 * .03;}' /proc/meminfo >> /etc/sysctl.conf
执行命令使之生效

sysctl -p
(6)配置资源限制参数
每一台都要配置
vim /etc/security/limits.conf

* soft nofile 524288
* hard nofile 524288
* soft nproc 131072
* hard nproc 131072
(7)磁盘I/O设置
每一台都要配置
先执行

fdisk -l
查看磁盘信息
针对每一块磁盘,执行

/sbin/blockdev --setra 16384 /dev/磁盘名
由于每次重启都需要重新执行上述命令,所以可以将上面的命令添加到/etc/rc.d/rc.local文件中每次开机自动执行
添加后赋予一下权限

chmod +x /etc/rc.d/rc.local
执行下面两条命令以修改磁盘IO调度设置和禁用THP提升性能

grubby --update-kernel=ALL --args="elevator=deadline"
grubby --update-kernel=ALL --args="transparent_hugepage=never"
执行完成后,重启一下系统以生效

(8)IPC Object Removal
每一台都要配置
vim /etc/systemd/logind.conf

RemoveIPC=no
修改完成后重启logind生效

service systemd-logind restart
(9)SSH连接阈值
每一台都要配置
vim /etc/ssh/sshd_config

Max Startups 10:30:200
MaxSessions 200
修改完成后重启sshd生效

service sshd restart
(10)同步系统时钟
每一台都要配置
在mdw上,vim /etc/ntp.conf文件。设置服务器指向数据中心的NTP时间服务器的参数。例如(如果 10.6.220.20 是您的数据中心NTP服务器的IP地址)

在mdw上,vim /etc/ntp.conf

server 10.6.220.20
在smdw上,vim /etc/ntp.conf

server mdw prefer
server 10.6.220.20
在所有的sdw上,vim /etc/ntp.conf

server mdw prefer
server smdw
设置好后,执行下面命令同步ntp(这一步先忽略,安装好gpssh后再执行)

gpssh -f ./hostlist -v -e 'ntpd'
(11)创建用户和用户组
每一台都要配置

groupadd gpadmin
useradd gpadmin -r -m -g gpadmin
passwd gpadmin
输入密码
生成gpadmin的ssh密钥

su gpadmin
ssh-keygen -t rsa -b 4096
一路回车即可
为gpadmin用户授予sudo访问权限
执行visudo

%wheel ALL=(ALL) NOPASSWD: ALL
分配gpadmin到此组

usermod -aG wheel gpadmin
(12)创建swap文件
先确认服务器是否存在swap文件或分区,如果已存在,则跳过以下步骤
默认大小等于机器ram大小
每一台都要配置,使用root账户执行

#创建一个128G的空文件
dd if=/dev/zero of=/home/swap/swap bs=1G count=128
修改权限
chmod 600 /home/swap/swap
#查看修改结果
ls -lh /home/swap/swap
#使用mkswap命令把创建的文件格式化为swap
mkswap /home/swap/swap
使用swapon命令使swap生效
swapon /home/swap/swap
#查看是否生效
swapon -s
#将新添加的swap添加到/etc/fstab文件中使之开机启动
echo '/home/swap/swap none swap sw 0 0' >> /etc/fstab
#验证/etc/fstab文件修改是否正确
mount -a

2.安装Greenplum
(1)安装gpdb
每一台都要配置

将安装包分发至每一台服务器的/home路径下,使用root用户执行

yum install ./greenplum-db-6.11.1-rhel7-x86_64.rpm
安装完成后,修改安装文件的owner

chown -R gpadmin:gpadmin /usr/local/greenplum*
(2)设置免密登录
只在mdw上执行

切换到dbadmin执行下列操作

su gpadmin
应用环境变量

source /usr/local/greenplum-db/greenplum_path.sh
使用ssh-copy-id命令将gpadmin公钥分发到其他服务器上实现免密登录

ssh-copy-id smdw
ssh-copy-id sdw1
ssh-copy-id sdw2
ssh-copy-id sdw3
...
(3)上创建hostlist、standby_seg_hosts、seg_only
只在mdw上执行

创建目录/home/gpadmin/conf

在该路径下创建hostlist、standby_seg_hosts、seg_only

hostlist 中填写所有节点的主机别名

mdw
smdw
sdw1
sdw2
...
standby_seg_hosts中填写stand by节点和所有Segment的主机别名

smdw
sdw1
sdw2
...
seg_only中只填写所有Segment的主机别名

sdw1
sdw2
...
(4)使用gpssh-exkeys打通所有服务器
只在mdw上执行

gpssh-exkeys -f hostlist
这样,我们后续就可以通过gpssh命令在主机上同时远程操控segment机器了

注意了,前面有一个同步ntp的命令还没有执行,这个时候可以执行下了(在mdw上执行即可):

gpssh -f ./hostlist -v -e 'ntpd'
(5)确认安装
在mdw机器上登录gpadmin账户,执行命令

gpssh -f hostlist -e 'ls -l /usr/local/greenplum-db'
如果上面步骤都执行正确,此时能够正确登录到各个节点上,并看到安装好的数据库目录

3.创建数据存储区
(1)在master机器上创建数据存储区
Master不存储user data,仅有system catalog tables和system metadata

在mdw上使用root用户创建

mkdir -p /data/master
chown gpadmin:gpadmin /data/master
(2)在stand by机器上创建数据存储区
如果存在smdw,则在mdw上使用gpadmin用户执行

source /usr/local/greenplum-db/greenplum_path.sh
gpssh -h smdw -e 'sudo mkdir -p /data/master'
gpssh -h smdw -e 'sudo chown gpadmin:gpadmin /data/master'
(3)在segment机器上创建数据存储区
在mdw上使用gpadmin用户执行

source /usr/local/greenplum-db/greenplum_path.sh
gpssh -f /home/gpadmin/conf/seg_only -e 'sudo mkdir -p /data/primary;mkdir -p /data/mirror'
#针对一台机器上多segment的部署方式,根据每台机器的segment数量,创建对应的存储目录
gpssh -f /home/gpadmin/conf/seg_only -e 'sudo mkdir -p /data1/primary;mkdir -p /data1/mirror'
gpssh -f /home/gpadmin/conf/seg_only -e 'sudo mkdir -p /data2/primary;mkdir -p /data2/mirror'
#......
gpssh -f /home/gpadmin/conf/seg_only -e 'sudo chown -R gpadmin:gpadmin /data*'
4.初始化数据库
(1)创建初始化配置文件
在mdw上使用gpadmin用户执行

su gpadmin
mkdir /home/gpadmin/gpconfigs
vim /home/gpadmin/gpconfigs/gpinitsystem_config
#数据库代号
ARRAY_NAME="Greenplum Data Platform"

#segment前缀
SEG_PREFIX=gpseg

#primary segment 起始的端口号
PORT_BASE=40000

#指定primary segment的数据目录
declare -a DATA_DIRECTORY=(/data/primary)
#如果每台机器上有多个segment
#declare -a DATA_DIRECTORY=(/data/primary /data1/primary /data2/primary ...)

#master所在机器的host name
MASTER_HOSTNAME=mdw

#master的数据目录
MASTER_DIRECTORY=/data/master

#master的端口
MASTER_PORT=5432

#指定bash的版本
TRUSTED_SHELL=ssh

#将日志写入磁盘的间隔,每个段文件通常 =16MB < 2 * CHECK_POINT_SEGMENTS + 1
CHECK_POINT_SEGMENTS=8

#字符集
ENCODING=UNICODE

#mirror segment 起始的端口号
MIRROR_PORT_BASE=50000

#mirror的数据目录,和主数据目录对应
declare -a MIRROR_DATA_DIRECTORY=(/data/mirror)
#如果每台机器上有多个segment
#declare -a MIRROR_DATA_DIRECTORY=(/data/mirror /data1/mirror /data2/mirror ...)

#segment机器列表
MACHINE_LIST_FILE=/home/gpadmin/conf/seg_only

(2)执行安装
在mdw上使用gpadmin用户执行

如果存在stand by机器,则执行

gpinitsystem -c /home/gpadmin/gpconfigs/gpinitsystem_config -h /home/gpadmin/conf/seg_only -s smdw
如果没有stand by机器,则执行

gpinitsystem -c /home/gpadmin/gpconfigs/gpinitsystem_config -h /home/gpadmin/conf/seg_only
(3)配置环境变量
在mdw上使用gpadmin用户执行

vi ~/.bashrc
在文件尾添加

source /usr/local/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/master/gpseg-1
#默认登录使用的端口号
export PGPORT=5432
#默认登录使用的用户
export PGUSER=gpadmin
#默认登录使用的数据库
export PGDATABASE=postgres
#如果服务器使用的系统是RHEL 7或CentOS 7,需要增加下面的配置
export LD_PRELOAD=/lib64/libz.so.1 ps
保存并source一下

source ~/.bashrc
如果存在stand by机器,需将配置文件复制到stand by机器

cd ~
scp .bashrc smdw:`pwd`
(4)允许客户端连接
在mdw上使用gpadmin用户执行

psql
如果前面的配置正确,则会免密登录到Greenplum数据库

修改一下gpadmin的密码

alter role gpadmin with password 'gpadmin';
退出数据库,在mdw机器上使用gpadmin用户执行

vim $MASTER_DATA_DIRECTORY/pg_hba.conf
末尾添加一行

#ADDRESS可以根据实际情况修改成对应的ip段
#连接方式 连接的数据库 连接的用户 连接的主机IP 认证方式
host all gpadmin all md5
执行命令使配置生效

gpstop -u
可以使用外部客户端工具或开发平台数据源测试是否配置成功。

四.Command Center安装步骤
1.准备工作
(1)修改配置文件
在mdw上使用gpadmin用户执行

编辑postgresql.conf文件

vim $MASTER_DATA_DIRECTORY/postgresql.conf
文件末尾添加或修改

gp_enable_gpperfmon=on
gpperfmon_port=8888
gp_external_enable_exec=on
gpperfmon_log_alert_level=warning
编辑pg_hba.conf文件

vim $MASTER_DATA_DIRECTORY/pg_hba.conf
文件末尾添加

local gpperfmon gpmon md5
host all gpmon 127.0.0.1/28 md5
(2)安装gpperfmon数据库,以及为gpmon用户创建密码
在mdw上使用gpadmin用户执行

gpperfmon_install --enable --password gpmon --port 5432
重启数据库

gpstop -r
检查gp监控是否启动

ps -ef | grep gpmmon
检查gp监控是否监测到greenplum集群中的每台主机

psql -d 'gpperfmon' -c 'select * from system_now;'
(3)创建安装目录
在mdw上使用gpadmin用户执行

source /usr/local/greenplum-db/greenplum_path.sh
gpssh -f /home/gpadmin/conf/hostlist 'sudo mkdir -p /usr/local/greenplum-cc-6.3.0;sudo chown -R gpadmin:gpadmin /usr/local/greenplum-cc-6.3.0'
gpssh -f /home/gpadmin/conf/hostlist 'sudo ln -s /usr/local/greenplum-cc-6.3.0 /usr/local/greenplum-cc;sudo chown -R gpadmin:gpadmin /usr/local/greenplum-cc'
2.安装Greenplum CC
在mdw上使用root用户执行

将文件上传到/home目录下并解压缩,修改owner

unzip /home/greenplum-cc-web-6.3.0-gp6-rhel7-x86_64.zip
mv /home/greenplum-cc-web-6.3.0-gp6-rhel7-x86_64 /home/greenplum-cc
chown -R gpadmin:gpadmin /home/greenplum-cc
切换到gpadmin用户执行安装命令

su gpadmin
/home/greenplum-cc/gpccinstall-6.3.0
执行安装过程中会提示安装路径、端口等,如无特殊要求推荐使用默认设置

安装完成后,配置环境变量

vi ~/.bashrc
末尾增加一行

source /usr/local/greenplum-cc/gpcc_path.sh
保存并source一下

source ~/.bashrc
将gpadmin下的.bashrc文件以gpadmin用户的身份分配到除master之外的机器上

gpscp -f /home/gpadmin/conf/standby_seg_hosts ~/.bashrc =:~
执行命令启动监控服务

gpcc start
如果存在stand by机器

登录到smdw上,将主机的pgpass文件拷贝过来

安装完成后,便可以登录http://mdwIP:28080查看监控了,2账户为gpmon,密码为四-1-(2)章节中预设的密码。


本文来源:https://blog.csdn.net/qq_29120661/article/details/120976844

相关文章