1.用docker安装greenplum
2.参考文档
https://my.oschina.net/u/876354/blog/1606419
《Greenplum企业应用实战_何勇,陈晓峰著》
3.步骤
3.1 拉取centos镜像
docker pull centos:latest
3.2 创建4个节点
docker run --name gpcentos1 -it centos /bin/bash
docker run --name gpcentos2 -it centos /bin/bash
docker run --name gpcentos3 -it centos /bin/bash
docker run --name gpcentos4 -it centos /bin/bash
3.3 在每个节点都执行如下操做
yum install -y net-tools which openssh-clients openssh-server less zip unzip iproute.x86_64
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
/usr/sbin/sshd
3.4 在每个节点配置/etc/hosts
注意,ip和hostname跟示例里不一样,要仔细区分
节点1 172.17.0.3 266a5746aeee
节点2 172.17.0.4 43dd8f0b86e8
节点2 172.17.0.5 5f1e077de725
节点2 172.17.0.6 bb0778aae767
每个节点的/etc/hosts文件都修改为
172.17.0.3 266a5746aeee
172.17.0.4 43dd8f0b86e8
172.17.0.5 5f1e077de725
172.17.0.6 bb0778aae767
172.17.0.3 dw-greenplum-1 mdw
172.17.0.4 dw-greenplum-2 sdw1
172.17.0.5 dw-greenplum-3 sdw2
172.17.0.6 dw-greenplum-4 sdw3
分别修改4个节点的/etc/sysconfig/network,保持主机名一致,比如master节点是
cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=mdw
其它以此类推
3.5在每个节点创建用户和用户组
groupadd -g 530 gpadmin
useradd -g 530 -u 530 -m -d /home/gpadmin -s /bin/bash gpadmin
chown -R gpadmin:gpadmin /home/gpadmin
passwd gpadmin
注意,passwd统一设置为 xxxxDDDD
3.6修改每个节点打开文件限制
vi /etc/security/limits.conf
# End of file
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
3.7 关闭所有节点防火墙和selinux
centos 7命令改了,参考 https://www.cnblogs.com/shizhijie/p/8005727.html和http://www.piis.cn/zhishi/web1453.asp
systemctl stop firewalld #停止firewall
systemctl stop iptables #停止iptables
[root@mdw selinux]# cat /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
4. 注册账号
https://account.run.pivotal.io/z/uaa/sign-up
5.下载安装包
https://network.pivotal.io/products/pivotal-gpdb
为了跟参考文档一致,选择greenplum-db-4.3.33.1-rhel5-x86_64.zip
6.主节点安装
把安装包cp到第一个节点
docker cp greenplum-db-4.3.33.1-rhel5-x86_64.zip 266a5746aeee:/home/gpadmin
su gpadmin
unzip greenplum-db-4.3.14.1-rhel5-x86_64.zip
chmod +x greenplum-db-4.3.14.1-rhel5-x86_64.bin
./greenplum-db-4.3.14.1-rhel5-x86_64.bin
安装期间需要修改默认安装目录,输入/home/gpadmin/greenplum-db-4.3.14.1
配置批量操做,创建两个文件/home/gpadmin/config下的hostlist和seg_hosts
cat hostlist
mdw
sdw1
sdw2
sdw3
cat seg_hosts
sdw1
sdw2
sdw3
配置环境变量
source /home/gpadmin/greenplum-db/greenplum_path.sh
然后执行打通所有机器
gpssh-exkeys -f /home/gpadmin/config/hostlist
这样,就可以对所有机器做批量操做了,比如
gpssh -f /home/gpadmin/config/hostlist
登陆到所有机器
=>pwd
显示所有当前目录
打包master节点上的安装包
tar -cf gp.4.3.tar greenplum-db-4.3.14.1/
使用gpscp命令将这个文件复制到每一台机器上
gpscp -f /home/gpadmin/conf/seg_hosts gp.4.3.tar =:/home/gpadmin/
批量解压,并建立软链接
[gpadmin@mdw conf]$ gpssh -f hostlist
=> cd /opt/greenplum
[sdw1]
[sdw2]
[mdw]
=> tar -xf gp.4.3.tar
[sdw1]
[sdw2]
[mdw]
=> ln -s ./greenplum-db-4.3.8.1 greenplum-db
[sdw1]
[sdw2]
[mdw]
=>exit
7.初始化安装数据库
批量创建数据目录
[gpadmin@mdw conf]$ gpssh -f hostlist
=> mkdir gpdata
[ mdw]
[sdw2]
[sdw1]
=> cd gpdata
[ mdw]
[sdw2]
[sdw1]
=> mkdir gpmaster gpdatap1 gpdatap2 gpdatap3 gpdatam1 gpdatam2 gpdatam3
[ mdw]
[sdw2]
[sdw1]
=> exit
8.在每个节点上配置.bash_profile环境变量
[gpadmin@mdw ~]$ cd
[gpadmin@mdw ~]$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
source /opt/gpadmin/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/home/gpadmin/gpdata/gpmaster/gpseg-1
export PGPORT=2345
export PGDATABASE=testDB
[gpadmin@mdw ~]$ source .bash_profile
9.初始化数据库
gpinitsystem -c /home/gpadmin/config/gpinitsystem_config -s sdw2
10.启动gp
在master节点执行
psql -d postgres
创建测试数据库
createdb testDB -E utf-8
postgre的基本命令
https://blog.csdn.net/Linga_X/article/details/51906152
切换到testDB上进行操作
\c testDB
select version();
退出
\q
启动qp
gpstart -a
关闭gp
gpstop
可以用一下试试。
11. 架构
11.1 每个节点是一个postgre,每个节点相互独立,不共享任何资源,包括数据。每个节点只使用自己的数据和硬件。每个节点的数据都是全部数据的一部分。
11.2 segment host是数据节点,master host是控制节点。
12. 实战
数据仓库,历史拉链表