1 安装准备
greenplum 安装包
4 台虚拟机,一台做 master 节点,3 台为数据节点,配置如下:
节点
mdw
sdw1
sdw2
sdw3
IP
操作系统 CPU
内存
硬盘
192.192.184.101
CentOS7.5
2*2 核 16G
192.192.184.102
CentOS7.5
2*2 核 16G
192.192.184.103
CentOS7.5
2*2 核 16G
192.192.184.104
CentOS7.5
2*2 核 16G
100G
300G
300G
300G
2 安装说明
1) greenplum 安装目录:/home/greenplum/greenplum-db-5.10.1
2) master 节点负责生成和优化查询计划、派发任务、协调数据节点进行并行计
算,所以对磁盘的容量要求不大,也不建议在 master 上安装 segment。
3) CPU 为 4 核,开发建议一核一个跑一个 segment,所以在每台数据节点上各
装 4 个 segment,数据存储目录为:
/home/greenplum/data1/primary
/home/greenplum/data2/primary
/home/greenplum/data3/primary
/home/greenplum/data4/primary
4) 在初始化 Greenplum 集群,修改配置 gpinitsystem_config 时,mirror 为可选
项,做数据容灾备份用,本次安装没有设置 mirror。如果要设置,可参考模
板文档中的说明做设置。
3 安装步骤
2.1系统参数配置
在每个节点都需要执行下述配置修改
修改各个主机的名称:CentOS7 用 hostnamectl 命令修改主机名称,执行
hostname 看是否生效。homenamectl 会立即修改内核主机名,可以不用重启
服务器。
修改各个主机上的/etc/hosts 文件:添加 ip-主机名映射关系
修改 linux 内核配置:vim /etc/sysctl.conf 添加以下内容。编辑完成后执行
sysctl –p 命令或重启使其生效。
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 1
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
xfs_mount_options = rw,noatime,inode64,allocsize=16m
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 4000000000
kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.sem = 250 512000 100 2048
net.ipv4.ip_local_port_range = 1025 65535
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
net.ipv4.tcp_syncookies = 1
net.ipv4.ip_forward = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.arp_filter = 1
net.core.netdev_max_backlog = 10000
vm.overcommit_memory = 2
对于生产环境,可以加大 kernel.sem = 250 64000 100 512 中的最后一位
配置,比如把 512 改为 1024、2048 这样的值。另外可以加大共享内存相关
配置(kernel.shmmax 和 kernel.shmall)。
修改限制配置文件:vim /etc/security/limits.conf 在文件末尾添加以下内容:
* soft
* hard
* soft
* hard
nofile 65536
nofile 65536
nproc 131072
nproc 131072
对于 RedHat6.x 系统,还需要将/etc/security/limits.d/90-nproc.conf 文件中
的 1024 改为 131072。
I/O 调整:vim /boot/grub/menu.lst 添加以下内容:
#greenplum configs
elevator=deadline
设置预读块个数:执行以下命令
#
#
#
./sbin/blockdev --setra 16384 /dev/sda
./sbin/blockdev -setra 16384 /dev/sda1
./sbin/blockdev -setra 16384 /dev/sda2
关闭防火墙
service firewalld stop 关闭防火墙
systemctl disable firewalld.service 禁止开机启动
service firewalld status 查看防火墙状态
2.2在 Master 节点上安装 GP
以下操作在 Master 主机上执行
创建目录:mkdir /home/greenplum
将 greenplum 上传到上诉文件夹下,解压:tar -zxvf greenplum-db-5.10.1.tar.gz
创建 all_hosts 文件:一行一个主机名
创建 segment_host_only 文件:只包含 segment 节点主机,一行一个主机名
source greenplum 环境变量:
source /teligen/greenplum-db-5.10.1/greenplum_path.sh
注意:source 前查看下 greenplum_path.sh 里设置的 GPHOME 是否正确,否则
source 也没用
ssh 免密登录设置。如果不在 all_hosts 文件所在目录下执行的话,all_hosts
前加上绝对路径
gpssh-exkeys -f all_hosts
用 gpseginstall 工具,创建 gpadmin 用户,并在其他主机上批量安装
在 master 节点的 greenplum-db-5.10.1/bin 目录下执行下述命令。all_hosts
文件放在哪里都行,执行命令的时候要加上绝对路径。命令运行后,根据提示输
入密码,等出现 request command complete 就成功了。
./gpseginstall -f /teligen/greenplum-db-5.10.1/all_hosts -u gpadmin -p gpadmin
创建数据存储目录/data/master,并修改文件所有者
mkdir /home/greenplum/data/master
chown -R gpadmin:gpadmin /home/greenplum /data
切换到 gpadmin 用户:su - gpadmin
source gp 的配置文件:
source /home/greenplum/greenplum-db-5.10.1/greenplum_path.sh
退出 gpadmin,切换到 root 用户
在所有数据节点主机上创建数据主目录和镜像数据目录,其中 mirror 不是必
须的,不设置 mirror 的话可以不执行 mirror 那一步。本次安装是在每台数据
节点上装各装 4 个 segment,所以目录要设置多个,data1~4。
gpssh -f segment_hosts -e 'mkdir -p /home/greenplum /data1/primary'
gpssh -f segment_hosts -e 'mkdir -p /home/greenplum /data1/mirror'
gpssh -f segment_hosts -e 'chown -R gpadmin:gpadmin /data1'
同步系统时钟
GP 建议使用 NTP(网络时间协议)来同步 GPDB 系统中的所有主机系统时钟。
1)在 master 节点,登录 root 用户,修改/etc/ntp.conf, 设置 server 127.0.0.1
2)在每个 segment 节点,修改/etc/ntp.conf,设置 server 指向 master
3)root 用户登录 master 节点,执行命令:
gpssh -f
all_hosts -v -e ‘ntpd’
2.3初始化 GreenPlum 集群
以下操作在 Master 主机上执行
创建 GP 数据库配置文件
1)切换到 gpadmin 用户
2)从模板中拷贝一份 gpinitsystem_config 文件
cd $ GPHOME/docs/cli_help/gpconfigs
cp gpinitsystem_config /home/gpadmin/gpinitsystem_config
3)修改配置文件,必须要改的参数:
MATER_DIRECTORY
DATA_DIRECTORY:每台机上要装多少个 segment 就设置多少个目录
MIRROR 为可选项,是在模板文件中被注释掉了,如果需要设置的,改
MIRROR_DIRECTORY
重新配置环境变量
vim ~/.bashrc 添加下述内容。注意,greenplum_path.sh 路径根据实际的写
source /home/greenplum/greenplum-db-5.10.1/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/master/gpseg-1
source ~/.bashrc
初始化集群:
gpinitsystem -c gpinitsystem_config -h segment_hosts
4 使用 pgadmin 工具连接数据库
安装 pgadmin 工具
新建连接,用户名/密码:gpadmin/gpadmin
server 右键,create->server
连接时可能会出现下面这个错误
需要在 master 节点上的/data/master/ gpseg-1/pg_hba.conf 文件中添加连接权限