gp5.0.0源码安装部署3节点

一、安装Linux

1、基础环境规划

  • 操作系统:CentOS-6.8-x86_64 mini
  • gp版本版本:5.0.0
  • gp节点规划: 1个master,3个segment的集群(采用相同配置)
  • 内存:16G
  • CPU : 8core
  • 网络:千兆以上

2、hosts文件配置

# cat /etc/hosts  
172.27.9.81 mdw.domain mdw  
172.27.9.82 sdw1.domain sdw1  
172.27.9.83 sdw2.domain sdw2  

注意:一定要做ping解析

3、创建用户和用户组(所有节点)

# groupadd -g 535 gpadmin
# useradd -g 535 -u535 -m -d /home/gpadmin -s /bin/bash gpadmin
# passwd gpadmin

4、修改系统内核(所有节点)

# cat /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.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
##swap使用率优化
vm.swappiness=0
vm.overcommit_memory = 2

执行以下命令使参数生效:

# sysctl –p

5、修改文件打开限制(所有节点)

# vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

6、关闭防火墙(所有节点)

# service iptables stop

或者开放5432端口,该端口之后会用到

# /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
# /etc/rc.d/init.d/iptables save

关闭SELINUX

# vi /etc/selinux/config

修改SELINUX=enforcing为 SELINUX=disabled

7、指定IO调度为deadline(所有节点)

# cp /boot/grub/grub.conf /boot/grub/grub.confbak

追加elevator=deadline到grub.conf文件

8、时间同步(所有节点)

#/usr/sbin/ntpdate -us 172.27.5.123;hwclock -w;

9、系统默认语言(所有节点)

# env |grep LANG


如果不是en_US.UTF-8,请修改/etc/sysconfig/i18n中的LANG为”en_US.UTF-8”

10、安装gp依赖包

# yum -y install coreutils glib2 lrzsz e4fsprogs xfsprogs readline-devel zlib zlib-devel openssl openssl-devel pam-devel libxml2-devel libxslt-devel python-devel tcl-devel gcc make smartmontools flex bison perl perl-devel perl-ExtUtils* OpenIPMI-tools gcc-c++ python-py bzip2-devel libevent-devel apr-devel curl-devel ed python-paramiko python-devel

上传或者下载python依赖库包和依赖包列表文件(requirements.txt)到/tmp目录下,进行离线安装:

requirements.txt包括:
appdirs (1.4.3)
argparse (1.4.0)
distribute (0.6.10)
epydoc (3.0.1)
iniparse (0.3.1)
lockfile (0.12.2)
ordereddict (1.2)
packaging (16.8)
paramiko (1.7.5)
pip (9.0.1)
PSI (0.3b2)
psutil (5.2.2)
py (1.4.18)
pycrypto (2.0.1)
pycurl (7.19.0)
pygpgme (0.1)
pyparsing (2.2.0)
setuptools (35.0.2)
six (1.10.0)
urlgrabber (3.9.1)
wheel (0.29.0)
yum-metadata-parser (1.1.2)

# tar zxf pip-9.0.1.tar.gz
# cd pip-9.0.1
# python setup.py install
# cd /tmp
# pip install --no-index --find-links="/tmp/offline_packages" -r requirements.txt

注意:优化完成后,必须重启所有主机

二、编译安装gp(master节点)

1、 创建安装文件目录(所有节点)

# su - gpadmin
$ mkdir ~/gpsql

2、上传gp源码包并解压

(下载链接:wget https://codeload.github.com/greenplum-db/gpdb/zip/5.0.0-alpha.2)

上传5.0.0-alpha.2至/home/gpadmin

# cd /home/gpadmin
# chown gpadmin: gpadmin  5.0.0-alpha.2
# su - gpadmin
$ unzip 5.0.0-alpha.2
$ ll

3、编译安装gp源码

$ ./configure --prefix=/home/gpadmin/gpsql --with-gssapi --with-pgport=5432 --with-libedit-preferred --with-perl --with-python --with-openssl --with-pam --with-krb5  --with-libxml --enable-cassert  --enable-testutils --enable-depend

$ make
$ make install

至此,master节点上的GP完成安装

4、创建配置文件

[root@mdw ~]# su - gpadmin 
[gpadmin@mdw ~]$ mkdir -p conf
[gpadmin@mdw ~]$ cd conf
[gpadmin@mdw conf]$ cat host_list
    mdw
    sdw1
    sdw2

[gpadmin@mdw conf]$cat seg_hosts
    sdw1
    sdw2  

5、配置节点免密码登陆

$ source /home/gpadmin/gpsql/greenplum_path.sh
 gpssh-exkeys -f /home/gpadmin/conf/host_list

注意:
(1)首次执行gpssh-exkeys命令时,在[STEP 3 of 5],要输入每个segment节点的gpadmin用户的密码,如果密码一样只输入一次。
(2)gpssh-exkeys命令使用的时候一定要用gpadmin用户,因为这个命令会生成ssh的免密码登录的秘钥,在/home/gpadmin/.ssh这里。如果以root身份使用gpssh-exkeys命令,那么生成的.ssh秘钥在root的home下面或者是在/home/gpadmin下面但是是root的所有者,如果之后使用gpadmin身份执行相应操作的时候就没有权限。
[INFO] completed successfully 说明执行成功,之后就可以使用下面的命令开启批量操作:

[gpadmin@mdw ~]$ gpssh -f /home/gpadmin/conf/host_list  

6、发送安装包到从节点

将gp安装包分发到各个segment节点

[root@mdw ~]# su - gpadmin

打包:

[gpadmin@mdw ~]$ cd /home/gpadmin/
[gpadmin@mdw ~]$ 7za a gp500.7z /home/gpadmin/gpsql/*  

然后利用gpscp命令将这个文件复制到每一台机器上:

[gpadmin@mdw ~]$ source /home/gpadmin/gpsql/greenplum_path.sh
[gpadmin@mdw greenplum]$ gpscp -f /home/gpadmin/conf/seg_hosts /home/gpadmin/gp500.7z =:/home/gpadmin/
[gpadmin@mdw greenplum]$ cd ~/conf/
[gpadmin@mdw conf]$ gpssh -f seg_hosts
    => 7za x gp500.7z -o/home/gpadmin/gpsql/

    => ll gpsql

这样就完成了所有节点的安装。

三、初始化数据库

1、建立数据目录(所有节点)

# mkdir -p /data/sdv1/gpdata
# chown -R gpadmin:gpadmin  /data/sdv1/gpdata
$su – gpadmin
$ source /home/gpadmin/gpsql/greenplum_path.sh
$ gpssh -f conf/host_list
    =>  cd  /data/sdv1/gpdata
    =>  mkdir gpmaster gpdatap1 gpdatap2 gpdatam1 gpdatam2
    =>    ll

其中gpmaster 用于存放master的数据
gpdata1 gpdata2 用于存放 segment的primary数据
gpdatam1 gpdatam2 用于存放segment的mirror 数据

2、配置gpadmin用户环境变量(所有节点)

编辑.bash_profile文件,追加以下内容:

# su - gpadmin
[gpadmin@mdw ~]$ cd ~
[gpadmin@mdw ~]$ vi .bash_profile
    source /home/gpadmin/gpsql/greenplum_path.sh
    export MASTER_DATA_DIRECTORY=/data/sdv1/gpdata/gpmaster/gpseg-1
    export PGPORT=5432
    export PGDATABASE=testDB  

备注:
MASTER_DATA_DIRECTORY指的是master数据存放目录
PGPORT指的是安装greenplum数据库的端口号。
环境变量生效

[gpadmin@mdw ~]$ source .bash_profile
[gpadmin@sdw1 ~]$ source .bash_profile
[gpadmin@sdw2 ~]$ source .bash_profile

3、配置初始化参数(master节点操作)

将/home/gpadmin/gpsql/docs/cli_help/gpconfigs/gpinitsystem_config文件copy到/home/gpadmin目录下然后编辑,保留如下参数即可:

# su - gpadmin
$ cp /home/gpadmin/gpsql/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/conf/ 
$ cat /home/gpadmin/conf/gpinitsystem_config
    ARRAY_NAME="Greenplum"
    SEG_PREFIX=gpseg
    PORT_BASE=33000
    declare -a DATA_DIRECTORY=(/data/sdv1/gpdata/gpdatap1)
    MASTER_HOSTNAME=mdw
    MASTER_DIRECTORY=/data/sdv1/gpdata/gpmaster
    MASTER_PORT=5432
    TRUSTED_SHELL=/usr/bin/ssh
    CHECK_POINT_SEGMENTS=8
    ENCODING=UTF-8
    MASTER_MAX_CONNECT=250
    MIRROR_PORT_BASE=43000
    REPLICATION_PORT_BASE=34000
    MIRROR_REPLICATION_PORT_BASE=44000
    declare -a MIRROR_DATA_DIRECTORY=(/data/sdv1/gpdata/gpdatam1)
    MACHINE_LIST_FILE=/home/gpadmin/conf/seg_hosts  

4、初始化数据库(master节点)

备注:日志目录/home/gpadmin/gpAdminLogs/,有错误要分析原因

# su - gpadmin
$ cd conf 
$ gpinitsystem -c gpinitsystem_config -h seg_hosts  

核对配置参数,输入:y

初始化完成,检查日志

四、测试运行安装的Greenplum数据库

1、启动Greenplum集群

$ gpstart -a

2、停止Greenplum集群

$ gpstop -a

3、查看Greenplum集群状态

$ gpstate 

4、重启gp(master节点操作)

$ gpstop -a
$ gpstart -a 

5、检测配置的性能

检测当前硬件配置的性能:
# su - gpadmin
[gpadmin@mdw ~] cdconf[gpadmin@mdwconf] gpcheckperf -f host_list -d /data/sdv1/gpdata –v

6、验证数据库

命令验证

$ psql -d postgres
    psql (8.2.15)
    Type "help" for help.
    postgres=#

输入查询语句验证

    postgres=# select datname,datdba,encoding,datacl from pg_database;
      datname  | datdba | encoding |              datacl              
    -----------+--------+----------+----------------------------------
     template1 |     10 |        6 | {=c/gpadmin,gpadmin=CTc/gpadmin}
     template0 |     10 |        6 | {=c/gpadmin,gpadmin=CTc/gpadmin}
     postgres  |     10 |        6 | 
    (3 rows)
    postgres=# \l
                      List of databases
       Name    |  Owner  | Encoding |  Access privileges  
    -----------+---------+----------+---------------------
     postgres  | gpadmin | UTF8     | 
     template0 | gpadmin | UTF8     | =c/gpadmin          
                                    : gpadmin=CTc/gpadmin
     template1 | gpadmin | UTF8     | =c/gpadmin          
                                    : gpadmin=CTc/gpadmin
    (3 rows)
    postgres=# \q  

五、安装pgadmin IV客户端

安装pgadmin IV使用该客户端,连接greenplum 5.0数据库

1、用户创建密码

$ psql -d postgres
postgres =# alter role gpadmin with password 'gpadmin';  

2、变更服务器访问授权

在master节点的 $MASTER_DATA_DIRECTORY/pg_hba.conf 中添加新的客户端服务器信息。master节点的pg_hba.conf配置文件,控制客户端访问Greenplum系统。

注意:segment节点也有pg_hba.conf配置文件,它只能控制master节点能否访问segment,决不能运行客户端连接。所以不要修改segment的pg_hba.conf文件。

格式:
host database role CIDR-address authentication-method
pg_hba.conf中记录是被顺序读取的,所有记录的顺序是有象征性意义的。

通常前面的记录匹配更少的连接但要求较弱的认证,后面的记录匹配更多的连接但要求更严格的认证。

例如:允许gpadmin用户在172.27.8.x网段访问所有数据库,使用md5验证。

$vi $MASTER_DATA_DIRECTORY/pg_hba.conf
host     all         all             172.27.8.0/22  trust
host     all         gpadmin        172.27.8.1/22  md5

注意:变更配置后必须重启集群

3、验证客户端能否连接数据库

方法1:psql工具

$ psql -h 172.27.9.81  -p 5432 -d postgres -U gpadmin -W 
Password for user gpadmin: 

-h 172.27.9.81 是指定连接master的ip地址
-p 5432 是安装greenplum数据库时,设置的端口号,当前数据库端口号是5432
-u gpadmin 是指定连接的用户名
-W为gpadmin的密码

你可能感兴趣的:(数据库)