Greenplum集群构建
- 主机信息与配置
主机 | IP | 系统信息 | 硬件配置 | 角色 |
---|---|---|---|---|
greenplum-node1.host.com | 192.168.1.146 | CentOS Linux release 7.8.2003 (Core) kernel: 3.10.0-1127.el7.x86_64 | CPU: 8C MEM: 16GB Disk: 200GB | master |
greenplum-node2.host.com | 192.168.1.147 | CentOS Linux release 7.8.2003 (Core) kernel: 3.10.0-1127.el7.x86_64 | CPU: 8C MEM: 16GB Disk: 200GB | Segment |
greenplum-node3.host.com | 192.168.1.148 | CentOS Linux release 7.8.2003 (Core) kernel: 3.10.0-1127.el7.x86_64 | CPU: 8C MEM: 16GB Disk: 200GB | Segment |
-
一、系统配置(所有服务器)
# 配置 ip 与主机名称对关系,本列中存在内网 DNS 所有没有进行配置,如果没有 DNS 可进行如下配置 cat /etc/hosts 192.168.1.146 greenplum-node1.host.com 192.168.1.147 greenplum-node2.host.com 192.168.1.148 greenplum-node3.host.com
$ cat 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 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.conf.default.arp_filter = 1 net.core.netdev_max_backlog = 10000 vm.overcommit_memory = 2 kernel.msgmni = 2048 net.ipv4.ip_local_port_range = 1025 65535
$ cat /etc/security/limits.conf * soft nproc 1000000 * hard nproc 1000000 * soft nofile 1000000 * hard nofile 1000000
-
二、升级系统内 python
# 安装 python3 $ sudo yum -y install python3 # 替换系统 python,并更改 yum 读取 python $ sudo rm /usr/bin/python && sudo ln -s /usr/bin/python3 /usr/bin/python $ cat /usr/bin/yum #!/usr/bin/python ==>#!/usr/bin/python2 $ cat /usr/libexec/urlgrabber-ext-down #!/usr/bin/python ==>#!/usr/bin/python2
-
三、安装 greenplum(以下操作在 Master 节点操作即可)
-
下载 greenplum (greenplum-db-4.3.33.8-rhel5-x86_64.zip 支持 rhel5,6,7);
-
解压安装文件会出现一个(greenplum-db-4.3.33.8-rhel5-x86_64.bin)可执行文件;
-
执行可执行文件根据提示自定义或者使用默认选项即可;
-
为系统配置用户与组(gpadmin 与gpadmin 组)因使用 LDAP 统一管理,所以在 LDAP 平台上创建即可,如果没有 LDAP 平台,直接在系统创建即可;
-
安装初始化集群所需包
$ sudo yum install ed -y
-
准备集群安装相关文件
$ cat seg_hosts greenplum-node2.host.com greenplum-node3.host.com # cat all_hosts greenplum-node1.host.com greenplum-node2.host.com greenplum-node3.host.com
-
建立节点间信任关系
# 此处需要注意,没有加载环境变量时,命令不能使用 $ source /data/greenplum-db/greenplum_path.sh $ gpssh-exkeys -f all_hosts # 如果提示输入密码输入即可
-
安装 GP
$ gpseginstall -f all_hosts -u gpadmin -p gpadmin 20210427:13:58:47:020986 gpseginstall:greenplum_master:root-[INFO]:-SUCCESS -- Requested commands completed
-
检测是否安装成功
$ gpssh -f all_hosts -e ls -l $GPHOME [greenplum-node1.host.com] ls -l /data/greenplum-db/.
-
创建各角色目录
# At Master Of User gpadmin $ mkdir /data/master # Use gpadmin gpssh -f seg_hosts -e 'mkdir -p /data/primary' gpssh -f seg_hosts -e 'mkdir -p /data/mirror'
-
所有Segment主机同步 Master 的时间
$ gpssh -f all_hosts -v -e 'ntpd'
-
创建Greenplum数据库配置文件,以gpadmin用户登录
su - gpadmin cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/gpinitsystem_config chmod 775 gpinitsystem_config
-
设置初始化配置文件参数
ARRAY_NAME="EMC Greenplum DW" SEG_PREFIX=gpseg PORT_BASE=20000 declare -a DATA_DIRECTORY=(/data/primary) MASTER_HOSTNAME=greenplum-node1.host.com MASTER_DIRECTORY=/data/master MASTER_PORT=5432 TRUSTED_SHELL=ssh CHECK_POINT_SEGMENTS=8 ENCODING=UNICODE
-
运行初始化工具初始化数据库
$ su - gpadmin $ source /usr/local/greenplum-db/greenplum_path.sh $ gpinitsystem -c gpinitsystem_config -h seg_hosts # 查看日志输出标有 successfully 表示成功
-
设置环境变量,master,Segment都设置
$ sudo su - gpadmin $ cat ~/.bashrc source /data/greenplum-db/greenplum_path.sh export MASTER_DATA_DIRECTORY=/data/master/gpseg-1 # 如果不配置此项后续使用 gp一系列操作都会失败
-
完成
通过以上步骤,简单的 Greenplum 数据库集群即可部署完成
-