环境:centos7.5 64位操作系统
[gpadmin@mdw ~]$ cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[gpadmin@mdw ~]$ uname -a
Linux mdw 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
安装前准备
(1)关闭selinux
sudo sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
(2)关闭防火墙及防火墙相关操作
firewall-cmd -stat //查看防火墙状态,状态为running或not running
Systemctl stop firewalld.service //关闭防火墙
systemctl disable firewalld.service //禁止firewall开机启动
systemctl enable firewalld.service //允许firewall开机启动
systemctl disable firewalld.service //禁止firewall开机启动
systemctl enable firewalld.service //允许firewall开机启动
(3)修改完后重启
(4)开启防火墙预留greenplum数据库端口
firewall-cmd --zone=public --permanent --add-port=5432/tcp
(5)重载服务器
firewall-cmd –reload
(6)检测端口是否开启
firewall-cmd --query-port=5432/tcp //开启为yes,否则为firewalld is not running
(7)进行共享内存与网路参数的配置
sudo vim /etc/sysctl.conf在打开的文件中添加如下信息
net.ipv4.ip_forward = 0
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.sem = 250 64000 100 512
kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.core.netdev_max_backlog= 10000
vm.overcommit_memory = 2
net.ipv4.conf.all.arp_filter = 1
(8)在/etc/security/limits.conf中添加限制参数
* soft nofile 65536 //可打开的文件描述符最大数(软限制)
* hard nofile 65536 //可打开的文件描述符最大数(硬限制)
* soft nproc 131072 //单个用户可用的最大进程数量(软限制)
* hard nproc 131072 //单个用户可用的最大进程数量(硬限制)
(9)重启系统使得配置生效
sysctl -p
(10)安装greenplum
方法一:源码安装(源码安装的过程中需要不断的安装相应依赖包)
git clone https://github.com/greenplum-db/gpdb
make
make check
make install
方法二:软件包安装
在官方下载相应的安装软件包https://network.pivotal.io/解压安装到具体的路径中,安装完成后如下图所示:
单机模式配置
在当前服务器上面配置一个master一个segment一个segmentmirror
(1)配置host解析
vim /etc/hosts //添加以下内容
IP mdw sdw //IP为当前服务器的IP,本服务器使用的位192.168.2.147
(2)创建greenplum数据的管理账户和用户组gpadmin
groupadd gpadmin
useradd -g gpadmin gpadmin
passwd gpadmin //设置用户密码
(3)修改greenplum安装目录的用户和用户组
chown -R gpadmin /usr/local/Greenplum-db-5.11.0
chgrp -R gpadmin /usr/local/Greenplum-db-5.11.0
(4)切换到gpadmin账户,并在家目录下面建立master和segment的数据存放目录
mkdir -p /home/gpadmin/masterdata
mkdir -p /home/gpadmin/segmentdata
mkdir -p /home/gpadmin/segmentmirror
(5)创建包含所有主机名的文件
vim /home/gpadmin/all_host //在文件中添加以下内容
mdw
sdw
(6)创建包含segment主机名的文件
vim /home/gpadmin/seg_host //在文件中添加以下内容
sdw
(7)将主机名修改为mdw
先执行:hostnamectl set-hostname "mdw"
在执行:hostname mdw
在/etc/sysconfig/network中添加mdw
(8)将MASTER_DATA_DIRECTORY加入到Master主机环境,修改gpadmin的.bashrc文件
if [ -f /etc/bashrc ]; then //防止家目录的消失
. /etc/bashrc
fi
export MASTER_DATA_DIRECTORY=/home/gpadmin/masterdata/gpseg-1
source /usr/local/greenplum-db-5.11.0/greenplum_path.sh
(9)将机器中的Python库全部复制到greenplum数据库的lib库目录下,这样做的原因是防止在执行gp相关的命令时出现各种各样的保存信息
\cp -R -f /usr/lib64/python2.7/site-packages/ /usr/local/greenplum-db-5.11.0/lib/python
(10)编辑greenplum初始化配置文件
ARRAY_NAME="EMC Greenplum DW"
SEG_PREFIX=gpseg
PORT_BASE=33000
declare -a DATA_DIRECTORY=(/home/gpadmin/segmentdata)
MASTER_HOSTNAME=mdw
MASTER_DIRECTORY=/home/gpadmin/masterdata
MASTER_PORT=5432
MACHINE_LIST_FILE=/home/gpadmin/seg_hosts
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UNICODE
MIRROR_PORT_BASE=43000
REPLICATION_PORT_BASE=34000
MIRROR_REPLICATION_PORT_BASE=44000
declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/segmentmirror)
(11)建立免密登录,免去登录密码的麻烦,执行命令出现报错时,返回到(8)检查配置的路径
gpssh-exkeys -f /home/gpadmin/all_hosts
(12)初始化数据库(会出现很多各种错误)
gpinitsystem -c /home/gpadmin/gpinitsystem_config
(13)执行完成功后会有两个成功提示,然后在执行gpstop看是否成功
集群扩展
将当前服务器修改为一个master三个segment
(1)配置host解析
vim /etc/hosts //添加以下内容
IP mdw sdw1 sdw2 sdw3 //IP为当前服务器的IP,本服务器使用的位192.168.2.147
(2)创建greenplum数据的管理账户和用户组gpadmin(如果用户已存在则不需要)
groupadd gpadmin
useradd -g gpadmin gpadmin
passwd gpadmin //设置用户密码
(3)修改greenplum安装目录的用户和用户组(权限存在时不需要)
chown -R gpadmin /usr/local/Greenplum-db-5.11.0
chgrp -R gpadmin /usr/local/Greenplum-db-5.11.0
(4)切换到gpadmin账户,并在家目录下面建立master和segment的数据存放目录
mkdir -p /home/gpadmin/masterdata
mkdir -p /home/gpadmin/segmentdata1
mkdir -p /home/gpadmin/segmentdata2
mkdir -p /home/gpadmin/segmentdata3
(5)创建包含所有主机名的文件
vim /home/gpadmin/all_host //在文件中添加以下内容
mdw
sdw1
sdw2
sdw3
(6)创建包含segment主机名的文件
vim /home/gpadmin/seg_host //在文件中添加以下内容
sdw1
sdw2
sdw3
(7)将主机名修改为mdw(若已经修改过则这步不在需要)
先执行:hostnamectl set-hostname "mdw"
在执行:hostname mdw
在/etc/sysconfig/network中添加mdw
(8)将MASTER_DATA_DIRECTORY加入到Master主机环境,修改gpadmin的.bashrc文件(若已经修改过则这步不在需要)
if [ -f /etc/bashrc ]; then //防止家目录的消失
. /etc/bashrc
fi
export MASTER_DATA_DIRECTORY=/home/gpadmin/masterdata/gpseg-1
source /usr/local/greenplum-db-5.11.0/greenplum_path.sh
(9)将机器中的Python库全部复制到greenplum数据库的lib库目录下,这样做的原因是防止在执行gp相关的命令时出现各种各样的保存信息(若已经复制过则这步不在需要)
\cp -R -f /usr/lib64/python2.7/site-packages/ /usr/local/greenplum-db-5.11.0/lib/python
(10)编辑greenplum初始化配置文件
ARRAY_NAME="EMC Greenplum DW"
SEG_PREFIX=gpseg
PORT_BASE=33000
declare -a DATA_DIRECTORY=(/home/gpadmin/segmentdata1 /home/gpadmin/segmentdata2 /home/gpadmin/segmentdata2) //多个segment直接进行拼接
MASTER_HOSTNAME=mdw
MASTER_DIRECTORY=/home/gpadmin/masterdata
MASTER_PORT=5432
MACHINE_LIST_FILE=/home/gpadmin/seg_hosts
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UNICODE
(11)建立免密登录,免去登录密码的麻烦,执行命令出现报错时,返回到(8)检查配置的路径,如果已经配置过则需要将原来配置的信息删除重新生成新的配置信息
gpssh-exkeys -f /home/gpadmin/all_hosts
(12)初始化数据库(会出现很多各种错误)
gpinitsystem -c /home/gpadmin/gpinitsystem_config
(13)执行完成功后会有两个成功提示,然后在执行gpstop看是否成功