集群搭建greenplum

一,安装说明

1.1环境说明

名称

版本

操作系统

CentOS 7.x 64bit

greenplum

Greenplum-db-6.23.0-rhel6-x86_64.rpm

二,安装环境准备

2.1 修改各节点名称

修改各个节点主机名字(各个节点都需要更改)

vim  /etc/hostname

gp-master

其他的可以用

gp-sdw1

gp-sdw2

2.1.1 修改主节点hosts

[root@ gp-master ~]# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.1     gp-master gp-master
192.168.0.2     gp-sdw1  gp-sdw1  
192.168.0.3     gp-sdw2  gp-sdw2 
 

2.1.2 复制到子节点

scp /etc/hosts gp-sdw1:/etc

scp /etc/hosts gp-sdw2:/etc

2.1.3依次修改各个节点/etc/sysconfig/network文件(每个节点都需要修改)

[root@ gp-master ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME= gp-master

这里的hostname需要和各个主机名称对应,如sdw1,sdw2

 

最后使用ping gp-sdw1来测试

2.2 修改主节点系统内核/etc/sysctl.conf文件

(说明:相同的配置先在主节点节点上配置,配置完成后在2.5小节中复制到其它节点上)

vi /etc/sysctl.conf
 
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.tcp_tw_recycle = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.defalut.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     ### 测试环境要取消这个,否则oracle启不来 ### 值为1

2.3 修改主节点进程数/etc/security/limits.d/90-nproc.conf文件

(说明:相同的配置先在主节点节点上配置,配置完成后在2.5小节中复制到其它节点上)

vi /etc/security/limits.d/90-nproc.conf
*          soft    nproc     131072
root       soft    nproc     unlimited

2.4 关闭所有节点防火墙,修改主节点/etc/selinux/config文件

(说明:相同的配置先在主节点节点上配置,配置完成后在2.5小节中复制到其它节点上)

关闭防火墙

systemctl stop firewalld

然后修改配置文件

vi /etc/selinux/config

 
 
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

2.5 复制主节点配置到子节点

依次复制到各个子节点

scp /etc/sysctl.conf gp-sdw1:/etc/
scp /etc/security/limits.d/90-nproc.conf gp-sdw1:/etc/security/limits.d
scp /etc/selinux/config gp-sdw1:/etc/selinux


最后让各个节点配置生效

[root@dw-greenplum-1~]# sysctl -p(让配置生效)

2.6 创建gpadmin用户(所有节点)

groupadd -g 530 gpadmin
useradd -g 530 -u 530 -m -d /home/gpadmin -s /bin/bash gpadmin
chown -R gpadmin:gpadmin /home/gpadmin
echo "gpadmin" | passwd --stdin gpadmin
 

三、安装Greenplum DB

3.1 在Master节点上安装Greenplum DB

把rmp的安装包放到usr/local的路径下

yum install -y  greenplum-db-6.23.0-rhel7-x86_64.rpm

默认的安装路径是/usr/local,然后需要修改该路径gpadmin操作权限:

chown -R gpadmin:gpadmin /usr/local

3.2 创建配置集群hostlist文件,打通节点

3.2.1 创建一个hostlist,包含所有节点主机名:

su - gpadmin
mkdir -p /home/gpadmin/conf
vi /home/gpadmin/conf/hostlist
 
gp-master
gp-sdw1
gp-sdw2
 

3.2.2 创建一个 seg_hosts ,包含所有的Segment Host的主机名:

vi /home/gpadmin/conf/seg_hosts
 
gp-sdw1
gp-sdw2
 

3.2.3 配置ssh免密连接:

这里需要注意的是要先做root的互信,然后在做gpadmin的互信

su root

建立集群间互信阶段

ssh-keygen

一直回车就行。

ssh-copy-id 后面跟着要导向的IP地址

如:

ssh-copy-id gp-sdw1

依次向两台节点发送

然后

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

gpssh-exkeys -f /home/gpadmin/conf/hostlist

显示以下,即为配置成功

[STEP 1 of 5] create local ID and authorize on local host

  ... /home/gpadmin/.ssh/id_rsa file exists ... key generation skipped

[STEP 2 of 5] keyscan all hosts and update known_hosts file

[STEP 3 of 5] retrieving credentials from remote hosts

  ... send to pc2

  ... send to pc3

[STEP 4 of 5] determine common authentication file content

[STEP 5 of 5] copy authentication files to all remote hosts

  ... finished key exchange with pc2

  ... finished key exchange with pc3

[INFO] completed successfully

测试ssh gp-sdw1

然后切换gpadmin ,做gpadmin的互信

su gpadmin

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

ssh-keygen

一直回车(注意gpadmin的密码是gpadmin)

ssh-copy-id gp-sdw1

ssh-copy-id gp-sdw2

gpssh-exkeys -f /home/gpadmin/conf/hostlist
 

这样才算完成了gpadmin的主节点和从节点的免密登录

注意:这个是gpadmin用户的免密登录。

3.3在Segment节点上安装Greenplum DB

先在各个子节点上进行文件路径的赋权

chown -R gpadmin:gpadmin /usr/local
chown -R gpadmin:gpadmin /opt

注意:以下操作都是在gpadmin用户下进行。

然后打包安装包发送到各个节点(从主节点发送到从节点)

[gpadmin@mdw conf]$ cd /usr/local/
打包:
tar -cf gp.tar greenplum-db-6.23.0/
 

这里就不用加上-rhel7-x86_64.rpm后缀了。

打包发送到

gpscp -f /home/gpadmin/conf/seg_hosts gp.tar =:/usr/local/

然后去相应的子节点的文件路径下查看。如果可以查看到那我们接下来就会在主节点对各个子节点进行批量操作。

[gpadmin@mdw conf]$ source /usr/local/greenplum-db/greenplum_path.sh
[gpadmin@mdw conf]$ gpssh -f /home/gpadmin/conf/seg_hosts  #统一处理子节点
 
=> cd /usr/local
[sdw1]
[sdw2]
=> tar -xf gp.tar
[sdw1]
[sdw2]
 
#建立软链接
=> ln -s ./greenplum-db-6.23.0 greenplum-db
[sdw1]
[sdw2]
=> ll(可以使用ll查看一下是否已经安装成功)
=>exit(退出)

最后去各个子节点看一下,有没有成功

先切换到root用户,给文件夹赋权,为了下一步统一操作的时候提供opt的权限

chown -R gpadmin:gpadmin /usr/local
chown -R gpadmin:gpadmin /opt

四、初始化数据库

4.1 创建资源目录(也是要在gpadmin用户下进行)

source /usr/local/greenplum-db/greenplum_path.sh
gpssh -f /home/gpadmin/conf/hostlist #统一处理所有节点
 
#创建资源目录 /opt/greenplum/data下一系列目录(生产目录个数可根据需求生成)
=> mkdir -p /opt/greenplum/data/master
=> mkdir -p /opt/greenplum/data/primary
=> mkdir -p /opt/greenplum/data/mirror
=> mkdir -p /opt/greenplum/data2/primary
=> mkdir -p /opt/greenplum/data2/mirror
 

4.2环境变量配置

4.2.1 在主节点进行环境变量配置

vi /home/gpadmin/.bash_profile

在这个文件的最后添加

source  /usr/local/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/opt/greenplum/data/master/gpseg-1
export GPPORT=5432
export PGDATABASE=gp_sydb


source /usr/local/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/opt/greenplum/data/master/gpseg-1
export GPPORT=5432
export PGDATABASE=gp_sydb
用这一个,别用上面那个

4.2.2 然后依次复制到各个子节点:

scp /home/gpadmin/.bash_profile gp-sdw1:/home/gpadmin/

scp /home/gpadmin/.bash_profile gp-sdw2:/home/gpadmin/

4.2.3 让环境变量生效:

source /home/gpadmin/.bash_profile
 

4.3 NTP 配置(ntp的配置可有可无)

启用master节点上的ntp,并在Segment节点上配置和启用NTP:

echo "server gp-master perfer" >>/etc/ntp.conf
gpssh -f /home/gpadmin/conf/hostlist -v -e 'sudo ntpd'
gpssh -f /home/gpadmin/conf/hostlist -v -e 'sudo /etc/init.d/ntpd start && sudo chkconfig --level 35 ntpd on'

4.4 初始化前检查连通性(可有可无)

cd /usr/local/greenplum-db/bin
gpcheckperf -f /home/gpadmin/conf/hostlist -r N -d /tmp
 
--  NETPERF TEST
-------------------
 
====================
==  RESULT
====================
Netperf bisection bandwidth test
gp-master -> gp-sdw1 = 72.220000
gp-sdw2 -> gp-sdw3 = 21.470000
gp-sdw1 -> gp-master = 43.510000
gp-sdw3 -> gp-sdw2 = 44.200000
 
Summary:
sum = 181.40 MB/sec
min = 21.47 MB/sec
max = 72.22 MB/sec
avg = 45.35 MB/sec
median = 44.20 MB/sec
 

这里要注意的是需要把所有节点防火墙都给关闭

4.5 执行初始化

初始化 Greenplum 配置文件模板都在/usr/local/greenplum-db/docs/cli_help/gpconfigs目录下,gpinitsystem_config是初始化 Greenplum 的模板,此模板中 Mirror Segment的配置都被注释;创建一个副本,对其以下配置进行修改:

cd /usr/local/greenplum-db/docs/cli_help/gpconfigs
cp gpinitsystem_config initgp_config
vi initgp_config  
 
#以下为文本要修改的属性字段配置      
#资源目录为在4.1章节创建的资源目录,配置几次资源目录就是每个子节点有几个实例(推荐4-8个,这里配置了6个,primary与mirror文件夹个数对应)
declare -a DATA_DIRECTORY=(/opt/greenplum/data/primary /opt/greenplum/data/primary /opt/greenplum/data/primary /opt/greenplum/data2/primary /opt/greenplum/data2/primary /opt/greenplum/data2/primary)
declare -a MIRROR_DATA_DIRECTORY=(/opt/greenplum/data/mirror /opt/greenplum/data/mirror /opt/greenplum/data/mirror /opt/greenplum/data2/mirror /opt/greenplum/data2/mirror /opt/greenplum/data2/mirror)
 
ARRAY_NAME=”gp_sydb”                                        #4.2.1章节配置的初始化数据库名称
MASTER_HOSTNAME=gp-master                                   #主节点名称
MASTER_DIRECTORY=/opt/greenplum/data/master                 #资源目录为在4.1章节创建的资源目录
MASTER_DATA_DIRECTORY=/opt/greenplum/data/master/gpseg-1    #与4.1章节配置一样
DATABASE_NAME=gp_sydb                                       #4.2.1章节配置的初始化数据库名称
MACHINE_LIST_FILE=/home/gpadmin/conf/seg_hosts              #就是3.2.2章节创建的文件

这里需要注意的是,对于文件夹中被注释掉但是需要修改的东西,直接在她的下面重新写一条新的即可。

#过程中未出错,出现-End Main就是安装完成

执行初始化;

gpinitsystem -c initgp_config -D

然后

gpstart  

psql -d postgres

进入数据库

CREATE USER root WITH PASSWORD '123456';
ALTER ROLE root SUPERUSER;

Greenplum连接外部客户端

修改主节点下的 /opt/greenplum/data/master/gpseg-1/pg_hba.conf 配置文件

# 添加一行内容,表示允许任何用户连接
host   all   all   0.0.0.0/0    trust
 

--重新加载配置文件
gpstop -u

五、数据库操作

5.1 停止和启动集群

gpstop -M fast
gpstart -a

5.2 登录数据库

$ psql -d postgres  #进入某个数据库
 
postgres=# \l # 查询数据库
                 List of databases
   Name    |  Owner  | Encoding |  Access privileges  
-----------+---------+----------+---------------------
 gp_sydb   | gpadmin | UTF8     | 
 postgres  | gpadmin | UTF8     | 
 template0 | gpadmin | UTF8     | =c/gpadmin          
                                : gpadmin=CTc/gpadmin
 template1 | gpadmin | UTF8     | =c/gpadmin          
                                : gpadmin=CTc/gpadmin
(4 rows)
postgres=# \i test.sql #执行sql
postgres=# copy 表名 to '/tmp/1.csv' with 'csv';      #快速导出单表数据
postgres=# copy 表名 from '/tmp/1.csv' with 'csv';    #快速导入单表数据
postgres=# \q          #退出数据库

5.3 集群状态

gpstate -e #查看mirror的状态
gpstate -f #查看standby master的状态
gpstate -s #查看整个GP群集的状态
gpstate -i #查看GP的版本
gpstate --help #帮助文档,可以查看gpstate更多用法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值