CentOS7下安装GreenPlum6
@GreenPlum下载地址:https://github.com/greenplum-db/gpdb/releases
@阿里云新用户优惠链接:https://www.aliyun.com/activity/daily/bestoffer?userCode=40hhhswk
@阿里云老用户优惠链接:https://www.aliyun.com/daily-act/ecs/care?userCode=40hhhswk
一、系统与环境说明
类型 | 版本 |
---|---|
系统 | Centos7 2台 (每台2块硬盘) |
数据库 | greenplum 6.13 |
二、服务器环境准备
本章节需要用root用户,修改所有节点的配置。
2.1 服务器基础信息配置
2.1.1 修改主机名
vi /etc/hostname
gpseg0
2.1.2 修改hosts
vi /etc/hosts
192.168.128.130 gpseg0
192.168.128.131 gpseg1
2.1.3 完成准备
主机名 | IP地址 | 角色 |
---|---|---|
gpseg0 | 192.168.128.130 | 主节点、存储节点 |
gpseg1 | 192.168.128.131 | 存储节点 |
按照表格,完成所有服务器的上述配置
2.2 修改系统参数
2.2.1 /etc/sysctl.conf
vi /etc/sysctl.conf
kernel.shmall = 4000000000
kernel.shmmax = 500000000
kernel.shmmni = 4096
vm.overcommit_memory = 2 # See Segment Host Memory
vm.overcommit_ratio = 95 # See Segment Host Memory
net.ipv4.ip_local_port_range = 10000 65535 # See Port Settings
kernel.sem = 500 2048000 200 40960
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 = 0 # See System Memory
vm.dirty_ratio = 0
vm.dirty_background_bytes = 1610612736
vm.dirty_bytes = 4294967296
刷新系统参数: sysctl -p
设置指导
kernel.shmall = ( _PHYS_PAGES / 2)
kernel.shmmax = ( _PHYS_PAGES / 2) * PAGE_SIZE
echo $(expr $(getconf _PHYS_PAGES) / 2)
echo $(expr $(getconf _PHYS_PAGES) / 2 * $(getconf PAGE_SIZE))
推荐设置/etc/sysctl.conf文件的参数为:
kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000
2.2.2 /etc/security/limits.conf
vi /etc/security/limits.conf
* soft nofile 524288
* hard nofile 524288
* soft nproc 131072
* hard nproc 131072
三、安装
本文档采用手动在所有节点安装rpm的形式。
本章节需要用root用户,修改所有节点的配置。(除3.3小结外)
3.1 安装
3.1.1 安装包上传
将安装包上传到所有节点上。(略)
3.1.2 测试安装,找出所需要的依赖(可略过)
rpm -ivh greenplum-db-6.13.0-rhel7-x86_64.rpm
依赖缺失:
error: Failed dependencies:
apr is needed by greenplum-db-6-6.13.0-1.el7.x86_64
apr-util is needed by greenplum-db-6-6.13.0-1.el7.x86_64
bzip2 is needed by greenplum-db-6-6.13.0-1.el7.x86_64
krb5-devel is needed by greenplum-db-6-6.13.0-1.el7.x86_64
libyaml is needed by greenplum-db-6-6.13.0-1.el7.x86_64
rsync is needed by greenplum-db-6-6.13.0-1.el7.x86_64
zip is needed by greenplum-db-6-6.13.0-1.el7.x86_64
libevent is needed by greenplum-db-6-6.13.0-1.el7.x86_64
3.1.3 安装依赖
yum install -y apr apr-util bzip2 krb5-devel libevent libyaml rsync zip
3.1.4 安装greenplum的RPM包
rpm -ivh greenplum-db-6.3.0-rhel7-x86_64.rpm
rpm默认的安装路径:
/usr/local/greenplum-db --软连接
/usr/local/greenplum-db-6.13.0 --真实路径
3.2 新建用户
3.2.1 新建用户: gpadmin
greenplum的管理员用户默认为: gpadmin,在每一台机器上新建gpadmin用户
useradd gpadmin ; echo "123456" | passwd --stdin gpadmin
这里将密码设置为:123456
3.2.2 修改greenplum安装目录权限
把通过RPM安装的Greenplum文件夹的拥有者,修改为gpadmin
chown -R gpadmin:gpadmin /usr/local/greenplum-db*
3.2.2 修改gpadmin环境变量
vi /home/gpadmin/.bash_profile
在文件末尾添加:
export GPHOME=/usr/local/greenplum-db
source $GPHOME/greenplum_path.sh
3.3 准备数据目录
架构说明:
+ 实验环境为2台节点,只是简单搭建,没有做standby高可用;
+ 实验环境所有的节点都会作为存储数据;
+ 生产环境下,建议master节点和segment节点配置一致,并且建议master节点不作为存储节点。
目录说明:
+ 实验环境在根目录’/'下新建文件夹,作为greenplum数据库的存储路径
+ 真实环境需要挂载多块硬盘后,将挂载的磁盘作为greenplum数据库的存储路径
- 在存储节点:
mkdir -p /data1 /data2 ; chown -R gpadmin:gpadmin /data1 /data2
- 在master和standby-master:
mkdir -p /data/master ; chown -R gpadmin:gpadmin /data
★四、集群初始化
本章节内容,均使用gpadmin用户操作
★4.1 免密配置
在集群环境中,需要配置gpadmin用户从master节点到segment之间的免密登录。
4.1.1 在所有节点上生成公钥
ssh-keygen -t rsa
4.1.2 将所有节点公钥拷贝至master节点
ssh-copy-id -i gpseg0
ssh-copy-id -i gpseg1
★4.2 配置文件
在master节点操作
mkdir ~/gpconfigs
4.2.1 新建集群节点列表
vi ~/gpconfigs/hostlist
gpseg0
gpseg1
4.2.2 ssh免密测试
gpssh -f ~/gpconfigs/hostfile_exkeys -e 'ls -l /usr/local/greenplum-db'
4.2.3 新建数据存放目录
- 主数据目录:
gpssh -f ~/gpconfigs/hostfile_exkeys -e 'mkdir -p /data1/primary /data2/primary'
- 镜像数据目录:
gpssh -f ~/gpconfigs/hostfile_exkeys -e 'mkdir -p /data1/mirror /data2/mirror'
4.2.4 拷贝配置文件模板
cp /usr/local/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config ~/gpconfigs
4.2.5 修改配置文件
vi ~/gpconfigs/gpinitsystem_config
ARRAY_NAME="Greenplum Data Platform"
SEG_PREFIX=gpseg # 前缀默认值
PORT_BASE=6000 # master默认端口
# 数据存放目录 根据磁盘性能配置每个目录中primary个数
declare -a DATA_DIRECTORY=(/data1/primary /data1/primary /data2/primary /data2/primary)
MASTER_HOSTNAME=gpseg0 # 主节点名称
MASTER_DIRECTORY=/data/master # master元数据目录
MASTER_PORT=5432
TRUSTED SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UNICODE
# 以下为mirror目录, 如果集群不需要镜像备份可以不打开
MIRROR_PORT_BASE=7000
declare -a MIRROR_DATA_DIRECTORY=(/data1/mirror /data1/mirror /data2/mirror /data2/mirror)
★4.3 初始化与反初始化
★4.3.0 反初始化
反向初始化,删除所有已存在的数据;当初始化遇见错误时,可以执行。
- master及standby-master:
rm -rf /data/master/*
- 数据节点:
gpssh -f ~/gpconfigs/hostfile_exkeys -e 'rm -rf /data1/primary/* /data2/primary/*'
gpssh -f ~/gpconfigs/hostfile_exkeys -e 'rm -rf /data1/mirror/* /data2/mirror/*'
4.3.1 初始化
- 初始化命令:
gpinitsystem -c ~/gpconfigs/gpinitsystem_config -h ~/gpconfigs/hostlist
- 初始化完成后,添加环境变量
vi ~/.bash_profile
export MASTER_DATA_DIRECTORY=/data1/master/gpseg-1 # ★ master、standby一定要配置 export PGPORT=5432 # ★ master、standby一定要配置 export PGDATABASE=postgres # 默认数据库
source ~/.bash_profile