Centos7安装Greenplum6教程(由单机master到集群)

环境:centos7 ,Greenplum6

1.  Greenplum 6.4 下载

https://github.com/greenplum-db/gpdb/releases/tag/6.4.0

 

2. 安装单机master环境准备

2.1 关闭SELINUX 

[root@master ~]# vim /etc/selinux/config

 

2.2关闭防火墙

[root@master ~]#  systemctl status firewalld.service(查看防火墙服务状态)

Active属性:dead为防火墙已关闭,run为防火墙正在运行

 

 [root@master ~]#  systemctl stop firewalld.service
 [root@master ~]#  systemctl disable firewalld.service   (禁用服务后就无法再使用stop firewalled.service了,下图主机名换成了segment1)

 

2.4改机器名

#查机器名
[root@master ~]#  hostname
#改名为master
[root@master ~]#  hostnamectl set-hostname master

 

 

2.5创建gpaadmin用户和用户组

[root@master ~]#  groupadd -g 3030 gpadmin
[root@master ~]#  useradd -u 3030 gpadmin -g gpadmin -d /home/gpdata
[root@master ~]#  passwd gpadmin
    (密码gpadmin123)
    #补充知识点:删除 groupdel gpadmin userdel gpadmin

vim /etc/passwd可查看用户及所属组,工作目录

 

2.6配置内核参数

[root@master ~]#  vim /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


 

sysctl -p使配置生效

 

 

2.7  vim /etc/security/limits.conf

以下面内容覆盖:

*soft nofile 65536
*hard nofile 65536
*soft nproc 131072
*hard nproc 131072


2.8CentOS7需要加入服务logind

[root@master ~]#  echo "RemoveIPC=no" >> /etc/systemd/logind.conf
[root@master ~]#  service systemd-logind restart

 

2.9设置hosts文件

[root@master ~]#  vim /etc/hosts

添加:172.16.250.106 master

172.16.250.106 这里更改成你自己的ip地址

 

2.10设置network

[root@master ~]#  vim /etc/sysconfig/network

添加:

networking=yes

hostname=master    (不区分大小写)

 

2.11重启服务器reboot

[root@master ~]# reboot

 

3.安装GreenPlum

3.1 gp6安装包上传到root目录

cd /进入根目录

rz命令上传文件参考:https://blog.csdn.net/lx_frolf/article/details/82770546

yum -y install greenplum-db-6.1.0-rhel6-x86_64.rpm

#默认安装到/usr/local,授权给gpadmin
chown -R gpadmin /usr/local/greenplum*
chgrp -R gpadmin /usr/local/greenplum*


使环境变量生效
source /usr/local/greenplum-db/greenplum_path.sh

 

 

3.2创建instance需要的目录

mkdir -p /home/gpdata
    mkdir -p /home/gpdata/master
    mkdir -p /home/gpdata/gp1
    mkdir -p /home/gpdata/gp2
    mkdir -p /home/gpdata/gp3
    mkdir -p /home/gpdata/gp4
#修改目录属主
    chown -R gpadmin:gpadmin /home/gpdata
    chown -R gpadmin:gpadmin /home/gpdata/master
    chown -R gpadmin:gpadmin /home/gpdata/gp*

 

 

3.3切换用户gpadmin

su gpadmin

进入$开头的bash环境

cd

改变前缀的方法:

vim bash_profile

文件末尾追加:

export PS1='[\u@\h \w]',

退出文件并 source bash_profile 使其生效

 

 

3.4 /home/gpadmin/.bash_profile文件添加以下内容:

source /usr/local/greenplum-db-6.4.0/greenplum_path.sh

export MASTER_DATA_DIRECTORY=/home/gpdata/master/gpseg-1

export PGPORT=2345

export PGUSER=gpadmin

export PGDATABASE=gpdb

3.5 /home/gpadmin/.bashrc文件添加同3.4的内容

添加上文3.4同样内容

 

 

3.6设置子节点的host

vim all_hosts_file

添加一行master(单机版只有一个host)

 

 

3.7 权限互通

[gpadmin@master ~]#  gpssh-exkeys -f all_hosts_file

 

3.8 编辑gp初始化文件

vim initgp_config
写入:
SEG_PREFIX=gpseg
PORT_BASE=33000
declare -a DATA_DIRECTORY=(/home/gpdata/gp1 /home/gpdata/gp2 /home/gpdata/gp3 /home/gpdata/gp4)
MASTER_HOSTNAME=master
MASTER_PORT=2345
MASTER_DIRECTORY=/home/gpdata/master
DATABASE_NAME=gpdb

 

3.9设置节点服务器

vim seg_hosts_file
写入:
master
本例单机,只有master这一台

 

4.初始化GP

gpinitsystem -c initgp_config -h seg_hosts_file

初始化失败:

原因:阿里云的服务器初始化没有设置分配swap空间,分配好swap空间即可

分配swap详情参考:https://www.cnblogs.com/zdz8207/p/linux-centos-swap.html

 

5.连接GP

5.1psql登录修改密码

 

    su gpadmin
    psql -p 2345
    修改数据库密码
        alter role gpadmin with password 'bigdata2018';
    退出: \q

 

 

5.2远程连接配置

vim /home/gpdata/master/gpseg-1/postgresql.conf
修改:
#listen_addresses = '*',去#注释
vim /home/gpdata/master/gpseg-1/pg_hba.conf
添加:
host     all         gpadmin         0.0.0.0/0               md5

 

 

5.3重新加载配置文件

gpstop -u

 

 

附录

其他启停命令

gpstart #正常启动
gpstop #正常关闭
gpstop -M fast #快速关闭
gpstop –r #重启

 

 

安装master后添加segment节点

1.更改segment系统配置

1.1更改机器名为segment

参考前文

 

1.2修改/etc/hosts文件(在master上以root权限更改,再用scp命令复制到segment节点)

[root@master ~]#  scp /etc/hosts segment1:/etc

 

1.3关闭selinux及防火墙

参考前文

selinux文件可用scp命令由master复制到segment节点

[root@master ~]#  scp /etc/selinux/config segment1:/etc/selinux

 

 

1.4修改/etc/sysconfig/network文件(进入每台segment中修改)

 

1.5复制master的/etc/sysctl.conf文件到segment

[root@master ~] scp /etc/sysctl.conf segment:/etc/sysconfig

 

并sysctl -p执行

 

1.6修改/etc/security/limits.d/20-nproc.conf文件并复制到segment

[root@master ~] vim /etc/security/limits.d/20-nproc.conf

 

1.7复制/etc/security/limits.conf到segment节点

[root@master ~] scp /etc/security/limits.conf  segment1:/etc/security/

 

 

1.8创建gpadmin组及用户

[root@master ~]# groupadd -g 1001 gpadmin

[root@master ~]# useradd -g admin -u 1001 gpadmin -d /home/gpadmin -s /bin/bash gpadmin

[root@master ~]# passwd admin 

 

1.9配置扩展segment节点需要的文件

1.9.1修改master主机gpadmin目录下的all_hosts_file

将所有节点的主机名都加进去

1.9.2修改master主机gpadmin目录下的seg_hosts_file

将segment节点的主机名加进去

 

1.9.3新增hosts_expand文件

将当前需要新增的节点主机名加入(如此次需要加入segment1,就将segment1写入)

gpadmin目录下的文件如下图:

 

1.9.4在segment节点增加和master路径一致的存放数据的目录

[gpadmin@segment ~]#  mkdir /home/gpdata

[gpadmin@segment ~]#  mkdir /home/gpdata/master

[gpadmin@segment ~]#  mkdir /home/gpdata/gp1

[gpadmin@segment ~]#  mkdir /home/gpdata/gp2

[gpadmin@segment ~]#  mkdir /home/gpdata/gp3

[gpadmin@segment ~]#  mkdir /home/gpdata/gp4

 

2.配置SSH免密登录

2.1master主机生成密钥ssh-keygen -t rsa -P '' 

[gpadmin@master ~]#  ssh-keygen -t rsa -P ''

id_rsa为私钥,id_rsa.pub为公钥

2.2将公钥复制到segment的 ~/.ssh/authorized_keys文件(.ssh目录及authorized_keys可能要提前创建)

[gpadmin@master ~]#  scp ~/.ssh/id_rsa.pub segment1:~/.ssh/authorized_keys

2.3设置目录权限

1) .ssh目录的权限必须是700(非常重要)

[root@segment1 gpadmin]#  chmod 700 .ssh

2) .ssh/authorized_keys文件权限必须是600

[root@segment1 .ssh]#  chmod 600 authorized_keys

2.4测试节点之间是否连通

[gpadmin@master ~]#  gpssh-exkeys -f all_hosts_file

最后出现completed successfully即证明节点之间已连通

 

 

3.在segment安装GP

3.1在master上将默认安装在/usr/local的greenplum-db-x.x.x压缩打包(需要将/usr/local的读权限给到gpadmin,否则会报错)

master上未授权时压缩文件失败:

[root@master ~]# chmod -R gpadmin:gpadmin /usr/local

[gpadmin@master ~]# tar -cf gp.tar /usr/local/greenplum-db-6.4.0/

文件压缩成功:


 

3.2将压缩包复制到segment节点(需要将/usr/local的读权限给到gpadmin,否则会报错)

segment1上未授权时复制失败:

[root@segment1 ~]# chown -R gpadmin:gpadmin /usr/local

[gpadmin@master ~]#  scp /usr/local/gp.tar segment1:/usr/local/

文件复制成功:

 

3.3解压文件

[root@segment1 local]# tar -xf gp.tar

3.4建立软连接

[gpadmin@segment1 local]# ln -s greenplum-db-6.4.0 greenplum-db

 

4.环境配置

4.1复制/home/gpadmin/.bash_profile到segment

[gpadmin@master ~]#  scp /home/gpadmin/.bash_profile segment:/home/gpadmin/

4.2使环境变量生效

[gpadmin@segment1 ~]# source .bash_profile

4.3复制/home/gpadmin/.bashrc到segment

 

5.使用gpexpand函数增加segment节点

5.1gpexpand -f hosts_gpexpand

中间需要确认一次,并且输入数据存放的路径

成功会显示已生成gpexpand_inoutfile开头的文件

 

5.2修改gpexpand_inputfile(只保留前面4行)

剩下的都可删掉,否则gpexpand -i 命令会失败,报错如下

 

5.3gpexpand -i 脚本文件

[gpadmin@segment1 ~]pexpand -i gpexpand_inputfile_20200417_001320

(出现Initialization of the system expansion complete即增加节点成功)

 

5.4删除增加节点生成的schema

(不删除以后则无法增加节点)

[gpadmin@segment1 ~]pexpand -c

 

5.5重分布表

[gpadmin@segment1 ~]$ gpexpand -d 60:00:00

(出现completed successfully即重分布成功)

 

5.6失败回滚

[gpadmin@master ~]$ gpexpand -r

 

5.7进入GP查询节点信息

=# select * from gp_segment_configuration

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章