原 MPP架构之Greenplum的安装配置初级版
Tags: 原创GreenPlum安装配置MPP分布式数据库数据仓库
简介
Greenplum是一个面向数据仓库应用的关系型数据库,因为有良好的体系结构,所以在数据存储、高并发、高可用、线性扩展、反应速度、易用性和性价比等方面有非常明显的优势。Greenplum是一种基于PostgreSQL的分布式数据库,其采用sharednothing架构,主机、操作系统、内存、存储都是自我控制的,不存在共享。
本质上讲Greenplum是一个关系型数据库集群,它实际上是由数个独立的数据库服务组合成的逻辑数据库。与RAC不同,这种数据库集群采取的是MPP(Massively Parallel Processing)架构。跟MySQL、Oracle 等关系型数据不同,Greenplum可以理解为分布式关系型数据库。
关于Greenplum的更多信息请访问https://greenplum.org/
下载
可以从 Greenplum 的 GitHub 页面(https://github.com/greenplum-db/gpdb/releases)下载RPM 包,或注册并登录到 Pivotal 公司官网(https://network.pivotal.io/products/vmware-tanzu-greenplum)进行下载。
安装包大约65MB,如下:
1 | wget https://github.com/greenplum-db/gpdb/releases/download/6.19.3/open-source-greenplum-db-6.19.3-rhel7-x86_64.rpm |
环境
本文以1个master,2个segment的集群示例,OS均为CentOS 7.6:
172.72.6.40 master lhrpg40
172.72.6.41 segment1 lhrpg41
172.72.6.42 segment2 lhrpg42
只为两个segment节点配置高可用的mirror节点,master的高可用可以使用流复制实现。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | -- 网卡 docker network create --subnet=172.72.0.0/16 lhrnw docker rm -f lhrgp40 docker run -d --name lhrgp40 -h lhrgp40 \ --net=lhrnw --ip 172.72.6.40 \ -p 64340:5432 \ -v /sys/fs/cgroup:/sys/fs/cgroup \ --privileged=true lhrbest/lhrcentos76:9.0 \ /usr/sbin/init docker rm -f lhrgp41 docker run -d --name lhrgp41 -h lhrgp41 \ --net=lhrnw --ip 172.72.6.41 \ -p 64341:5432 \ -v /sys/fs/cgroup:/sys/fs/cgroup \ --privileged=true lhrbest/lhrcentos76:9.0 \ /usr/sbin/init docker rm -f lhrgp42 docker run -d --name lhrgp42 -h lhrgp42 \ --net=lhrnw --ip 172.72.6.42 \ -p 64342:5432 \ -v /sys/fs/cgroup:/sys/fs/cgroup \ --privileged=true lhrbest/lhrcentos76:9.0 \ /usr/sbin/init docker cp /soft/open-source-greenplum-db-6.19.3-rhel7-x86_64.rpm lhrgp40:/soft/ docker cp /soft/open-source-greenplum-db-6.19.3-rhel7-x86_64.rpm lhrgp41:/soft/ docker cp /soft/open-source-greenplum-db-6.19.3-rhel7-x86_64.rpm lhrgp42:/soft/ |
修改/etc/hosts文件
在Greenplum中,习惯将Master机器叫做mdw,将Segment机器叫做sdw。dw的含义为Data Warehouse。
1 2 3 | 172.72.6.40 lhrpg40 mdw 172.72.6.41 lhrpg41 sdw1 172.72.6.42 lhrpg42 sdw2 |
mdw和sdw只是一个主机的别名,不影响程序去查找IP。
创建用户和集群配置文件
为所有节点创建gpadmin用户:
1 2 3 4 | 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:lhr" | chpasswd |
为所有的节点创建一个all_hosts文件,包含所有节点主机名:
1 2 3 4 5 6 7 8 9 10 | su - gpadmin mkdir -p /home/gpadmin/conf/ cat > /home/gpadmin/conf/all_hosts <<"EOF" lhrgp40 lhrgp41 lhrgp42 EOF |
为所有的节点创建一个 seg_hosts文件 ,包含所有的Segment Host的主机名:
1 2 3 4 5 6 | cat > /home/gpadmin/conf/seg_hosts <<"EOF" lhrgp41 lhrgp42 EOF |
配置互信
只在master节点操作:
1 2 | ./sshUserSetup.sh -user gpadmin -hosts "lhrgp40 lhrgp41 lhrgp42" -advanced exverify –confirm chmod 600 /home/gpadmin/.ssh/config |
安装GP
在所有节点操作:
1 2 3 4 5 6 | wget https://github.com/greenplum-db/gpdb/releases/download/6.19.3/open-source-greenplum-db-6.19.3-rhel7-x86_64.rpm yum install -y apr apr-util bash bzip2 curl krb5 libcurl libevent libxml2 libyaml zlib openldap openssh openssl openssl-libs perl readline rsync R sed tar zip krb5-devel rpm -ivh open-source-greenplum-db-6.19.3-rhel7-x86_64.rpm |
默认的安装路径是/usr/local,修改该路径gpadmin操作权限:
1 | chown -R gpadmin:gpadmin /usr/local/greenplum-db |
创建目录,用作集群数据的存储目录:
1 2 | mkdir -p /opt/greenplum/data/ chown -R gpadmin:gpadmin /opt/greenplum |