1 从源代码编译 Greenplum
Greenplum ⽬前官⽅⽀持 Redhat/Centos/SuSE/Ubuntu 等Linux系统。
⾸先,下载 Greenplum 源代码
$ git clone https://github.com/greenplum-db/gpdb
其次,Greenplum Database 编译和运⾏依赖于各种系统库和Python库。需要先安装这些依赖:
$ sudo yum groupinstall 'Development Tools' # GCC, libtools etc
$ sudo yum install curl-devel bzip2-devel python-devel openssl-devel readline-devel libzstd-devel
$ sudo yum install perl-ExtUtils-Embed # If enable perl
$ sudo yum install libxml2-devel # If enable XML support
$ sudo yum install openldap-devel # If enable LDAP
$ sudo yum install pam pam-devel # If enable PAM
$ sudo yum install perl-devel # If need installcheck-world
$ sudo yum install gcc libffi-devel python-devel openssl-devel
$ wget https://bootstrap.pypa.io/get-pip.py #如果python是2.7的下载2.7的版本即可wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
$ sudo python get-pip.py
$ sudo pip install psutil lockfile paramiko setuptools epydoc
再次,编译 Greenplum Database 源代码,假定安装到 $HOME/gpdb.master ⽬录下(首先添加gpadmin用户)
# useradd gpadmin
$ CFLAGS="-O0 -g3 -ggdb3" ./configure --with-perl --with-python --with-libxml --enable-debug --enable-cassert --disable-orca --disable-gpcloud --disable-gpfdist --prefix=/home/gpadmin/gpdb.master
$ make
$ make install
2、配置单机模式
下⾯介绍如何⼿⼯部署⼀个单机集群:在⼀台笔记本上安装⼀个Greenplum的集群,包括⼀个master,一个segments。
-
系统环境配置
$ /etc/sysctl.conf kernel.shmmax = 500000000 kernel.shmmni = 4096 kernel.shmall = 4000000000 kernel.sem = 250 512000 100 2048 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_tw_recycle = 1 net.ipv4.tcp_max_syn_backlog = 4096 net.ipv4.conf.all.arp_filter = 1 net.ipv4.ip_local_port_range = 10000 65535 net.core.netdev_max_backlog = 10000 net.core.rmem_max = 2097152 net.core.wmem_max = 2097152 vm.overcommit_memory = 2 $ cat /etc/security/limits.conf * soft nofile 65536 * hard nofile 65536 * soft nproc 131072 * hard nproc 131072 $ sysctl -p
-
source⼀些环境变量, 例如PATH
$ source $HOME/gpdb.master/greenplum_path.sh
-
配置hosts解析
vim /etc/hosts 192.168.0.254 pg6.17.2
-
交换集群中所有机器的ssh密钥, 我们这⾥只有⼀台机器
$ gpssh-exkeys -h
hostname
-
切换到gpadmin账户下,在家目录下建立master和segment的数据存放目录。你也可以自行设定数据存放目录,如果你不是以gpadmin建立的目录,还需要修改目录的用户和用户组,最好是建在家目录下。
su - gpadmin mkdir -p /home/gpadmin/masterdata mkdir -p /home/gpadmin/segmentdata mkdir -p /home/gpadmin/segmentmirror
-
⽣成三个配置⽂件:env.sh, hostfile, gpinitsystem_config
[gpadmin@swq-cloudm-deploy ~]$ ls env.sh gpAdminLogs gpdb-6.17.2 gpdb.master gpinitsystem_config hostfile masterdata segmentdata segmentmirror [gpadmin@swq-cloudm-deploy ~]$ pwd /home/gpadmin
[gpadmin@swq-cloudm-deploy ~]$ cat env.sh source $HOME/gpdb.master/greenplum_path.sh export PGPORT=5432 export MASTER_DATA_DIRECTORY=$HOME/masterdata/gpseg-1
$ cat hostfile gp6.17.2 #
[gpadmin@swq-cloudm-deploy ~]$ cat gpinitsystem_config ARRAY_NAME="Open Source Greenplum" SEG_PREFIX=gpseg PORT_BASE=40000 declare -a DATA_DIRECTORY=(/home/gpadmin/segmentdata) MASTER_HOSTNAME=swq-cloudm-deploy MASTER_DIRECTORY=/home/gpadmin/masterdata MASTER_PORT=5432 TRUSTED_SHELL=ssh CHECK_POINT_SEGMENTS=8 ENCODING=UNICODE MACHINE_LIST_FILE=hostfile MIRROR_PORT_BASE=43000 REPLICATION_PORT_BASE=34000 MIRROR_REPLICATION_PORT_BASE=44000 declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/segmentmirror)
有⼏个DATA_DIRECTORY, 每个节点上便会启动⼏个segments
-
初始化Greenplum 集群
$ source env.sh $ gpinitsystem -c gpinitsystem_config -a
执行完上面这步,会有各种报错,其他的报错你看看日志里的错误提示就能解决,中途需要你给他个“y",成功后应该在显示的信息里看到两个success的提示,然后用gpstop命令试一试,提示如下信息表示安装成功(中途要给个"y"):
-
初始化成功后,运⾏下⾯命令验证系统状态
$ psql -l $ gpstate
参考文档: