基本搭建:
系统版本 centos 7
Greenplum 版本5.18.0
一、初始化:
1、准备4台内存为4G的机器
这里使用1个master,3个segment的集群,其中mdw为master,其余为segment。
2、配置IP并修改主机名:
hosts为:
10.197.162.70 mdw
10.197.162.71 sdw1
10.197.162.72 sdw2
10.197.162.73 sdw3
3、初始化(每个节点都要执行):
hostnamectl set-hostname 主机名
systemctl stop firewalld
systemctl disable firewalld
sed -i '/^SELINUX/s/enforcing/disabled/' /etc/selinux/config
yum install -y unzip ftp lftp gpm vim-enhanced tree ntp setuptool authconfig ntsysv net-tools acpid gcc gcc-c** make
ntpdate ntp2.aliyun.com
groupadd -g 530 gpadmin
useradd -g 530 -u530 -m -d /home/gpadmin -s /bin/bash gpadmin
echo "gpadmin" | passwd --stdin gpadmin
4、配置环境变量
[gpadmin@sdw3 ~]$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
source /usr/local/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/gpdata/master/gpseg-1
export PGPORT=5436
export PGDATABASE=postgres
二、配置内核参数和限制参数(所有节点都要做):
1、配置内核参数
vi /etc/sysctl.conf
在末尾添加:
kernel.shmmax = 2147483648
#表示单个共享内存段的最大值,以字节为单位,此值一般为物理内存的一半,不过大一点也没关系GB*1024*1024*1024
kernel.shmall = 2147483648
#表示可用共享内存的总量,单位是页,一般此值与kernel.shmmax相等
kernel.shmmni = 4096
#表示单个共享内存段的最小值,一般为4kB
kernel.sem = 250 512000 100 2048
#该文件用于控制内核信号量,信号量是System VIPC用于进程间通讯的方法。建议设置:250 32000 100 128
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
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.ipv4.ip_local_port_range = 1025 65535
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.overcommit_memory = 2
vm.overcommit_ratio = 90
[root@mdw ~]# sysctl -p
(使参数生效)
2、配置限制参数
[root@mdw ~]# vi /etc/security/limits.conf
在文件末尾添加以下内容:
# End of file
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
三、在master节点上安装greenplum软件
安装软件
[root@mdw ~]# unzip ./greenplum-db-5.18.0-rhel7-x86_64.zip 随意路径
[root@mdw ~]# ./greenplum-db-5.18.0-rhel7-x86_64.bin
(安装,一顿yes,注意里面有个安装路径)
[root@mdw ~]# chown -R gpadmin:gpadmin /usr/local/greenplum-db-5.18.0
因为只在master上安装了Greenplum,所以接下来要将安装包批量发送到每个segment上,才能算是整个集群完整安装了Greenplum。
四、配置互信,master节2点管理管理其他节点
1、创建其他节点和集群节点的信息文件
[root@mdw ~]# su – gpadmin
[gpadmin@mdw ~]$ mkdir conf
[gpadmin@mdw ~]$ cd conf
[gpadmin@mdw conf]$ vi hostlist
mdw
sdw1
sdw2
sdw3
[gpadmin@mdw conf]$ vi seg_hosts
sdw1
sdw2
sdw3
hostlist存储了所有节点的主机名,seg_hosts存储了所有从节点的主机名。
2、打通所有节点(master执行):
[gpadmin@mdw ~]$source .bash_profile
[gpadmin@mdw ~]$ gpssh-exkeys -f /home/gpadmin/conf/hostlist
... ...
[INFO] completed successfully
注意:
首次执行gpssh-exkeys命令时,在[STEP 3 of 5],要输入每个segment节点的gpadmin用户的密码。
四、将greenplum软件目录传到其他节点
利用gpscp命令将这个文件复制到每一台机器上:
1、打包
[root@mdw ~]# cd /usr/local/
[root@mdw local]# tar -cf greenplum-db-5.18.0.tar greenplum-db-5.18.0
2、将tar传入到其他节点
[gpadmin@mdw greenplum]$ gpscp -f /home/gpadmin/conf/seg_hosts gp. 5.11.tar =:/opt/greenplum/
如果没有意外,就批量复制成功了,可以去子节点的相应文件夹查看,之后要将tar包解压,我们使用批量操作。
3、批量解压并创建软连接
[gpadmin@mdw conf]$ gpssh -f seg_hosts
=> cd /usr/local/
[sdw3]
[sdw1]
[sdw2]
=> tar -xf greenplum-db-5.18.0.tar
[sdw3]
[sdw2]
[sdw1]
建立软链接
=> ln -s ./greenplum-db-5.18.0 greenplum-db
[sdw3]
[sdw2]
[sdw1]
批量创建目录
[root@mdw local]# mkdir -p /data/gpdata/master
[root@mdw local]# chmod -R 775 /data/gpdata/master
[root@mdw local]# chown -R gpadmin /data/gpdata/master
[root@mdw local]# gpssh -f /home/gpadmin/conf/seg_hosts
=> mkdir -p /data/gpdata/primary
[sdw2]
[sdw3]
[sdw1]
=> mkdir -p /data/gpdata/mirror
[sdw2]
[sdw3]
[sdw1]
=> chown -R gpadmin.gpadmin /data/gpdata/primary
[sdw2]
[sdw3]
[sdw1]
=> chown -R gpadmin.gpadmin /data/gpdata/mirror
[sdw2]
[sdw3]
[sdw1]
=> chmod -R 775 /data/gpdata/mirror
[sdw2]
[sdw3]
[sdw1]
=> chmod -R 775 /data/gpdata/primary
[sdw2]
[sdw3]
[sdw1]
初始化配置文件:
vi /home/gpadmin/conf/gpinitsystem_config
ARRAY_NAME=“Greenplum”
SEG_PREFIX=gpseg
PORT_BASE=33000
declare -a DATA_DIRECTORY=(/data/gpdata/primary /data/gpdata/primary)
MASTER_HOSTNAME=mdw
MASTER_DIRECTORY=/data/gpdata/master
MASTER_PORT=5436
TRUSTED_SHELL=/usr/bin/ssh
MIRROR_PORT_BASE=43000
REPLICATION_PORT_BASE=34000
MIRROR_REPLICATION_PORT_BASE=44000
declare -a MIRROR_DATA_DIRECTORY=(/data/gpdata/mirror /data/gpdata/mirror)
MACHINE_LIST_FILE=/home/gpadmin/conf/seg_hosts
4.4 初始化数据库(只需master即可)
[gpadmin@mdw ~]$ gpinitsystem -c gpinitsystem_config -s sdw3
其中sdw3是指master的standby所在的节点,我看书上和网上的一些资料都将standby放在最后一个节点,可能是约定俗成的吧。
注意:如果上面有一些配置有问题,gpinitsystem就不能成功,日志在主节点/home/gpadmin/gpAdminLogs/的gpinitsystem_2016XXXX.log文件中。
需要注意的是如果初始化失败,一定要认真查看这个日志文件,一味重复安装没有太大意义,重要的是要找到主要原因。
spread mirror**模式:
(spread模式,主机的第一个mirror在下个主机,第二个mirror在次下个主机,第三mirror在次次下个主机…)
执行初始化命令:gpinitsystem加上–S,节点分布方式为spread
[gpadmin@master ~]$gpinitsystem -c gpinitsystem_config -h seg_hosts -s standby –S
测试运行安装的Greenplum数据库
启动和停止数据库测试是否能正常启动和关闭
# gpstart
# gpstop
5.2 访问数据库
# psql -d postgres
psql (8.2.15)
Type “help” for help.
postgres=#