GreenPlum6.0搭建,超详细
⽬录
⼀、基础架构介绍
1.⽹络结构
GP数据通过多台主机进⾏⼤量的数据处理;master节点是整个GP集的⼊⼝,⽤户通过master节点连接并提交sql语句;segment节点功能是处理数据和存储数据,master负责协调各个节点直接的⼯作负载,如下图所⽰:
2.部署架构
本编⽂章部署架构为单master节点,单segment节点;如需部署⾼可⽤集:master主备,segment冗余,可参考官⽹,或评论区留⾔
⼆、集主机基础配置
1.机器准备
本例⼦⽤的是5台16C32G的腾讯云机器,每台机器挂在⼀个100G的数据磁盘
2.机器配置
机器配置主要包含⼀下三个⽅⾯:
共享内存:如果segment节点没有配置共享内存,GP集将⽆法启动。⼤部分Linux的默认共享内存配置低于GP集所需要的共享内存;同时,你还需要关闭主机上的OOM killer。
⽹络:GP必须要⼀个⼤流量、最优化的⽹络
⽤户限制:GP必须要对相关⽂件设置⾼度的访问权限;默认的⽂件访问权限限制可能会造成GP访问失败
1  域名解析配置
⽤root⽤户登陆各台主机,编辑/etc/hosts,并将IP和域名映射配置加到末尾,为了让5台机器之间通过
域名能相互访问,如:
# master
10.0.0.1  mdw
# segments
10.0.0.2  sdw1
10.0.0.3  sdw2
10.0.0.4  sdw3
10.0.0.5  sdw4
可在任意⼀台机器ping对⽅的域名测试,如:在master上执⾏ ping sdw1
2  设置系统参数
5个地⽅需要根据系统的值配置
# kernel.shmall = _PHYS_PAGES / 2 # 备注<1> kernel.shmall = 4000000000
# kernel.shmmax = kernel.shmall * PAGE_SIZE # 备注<2> kernel.shmmax = 500000000
kernel.shmmni = 4096
vm.overcommit_memory = 2
vm.overcommit_ratio = 95
net.ipv4.ip_local_port_range = 10000 65535 # 备注<3> kernel.sem = 500 2048000 200 40960
kernel.sysrq = 1
<_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
p_syncookies = 1
f.default.accept_source_route = 0
p_max_syn_backlog = 4096
f.all.arp_filter = 1
vm.swappiness = 10
<_reclaim_mode = 0
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
vm.dirty_background_ratio = 0 # 备注<5>
vm.dirty_ratio = 0
vm.dirty_background_bytes = 1610612736
vm.dirty_bytes = 4294967296
Notes:
备注<1><2>
kernel.shmall(共享内存页总数)
kernel.shmmax (共享内存段的最⼤值)
⼀般来讲,这两个参数的值应该是物理内存的⼀半,可以通过操作系统的值_PHYS_PAGES和PAGE_SIZE计算得出。
kernel.shmall = ( _PHYS_PAGES / 2)
kernel.shmmax = ( _PHYS_PAGES / 2) * PAGE_SIZEgreenplum数据库
也可以通过以下两个命令得出这两个参数的值:
$ echo $(expr $(getconf _PHYS_PAGES) / 2)
$ echo $(expr $(getconf _PHYS_PAGES) / 2 \* $(getconf PAGE_SIZE))
如果得出的kernel.shmmax值⼩于系统的默认值,则引⽤系统默认值即可
备注<3>
segment使⽤的端⼝是6000开始
segment mirror使⽤的端⼝是7000开始
所以配置默认值即可
net.ipv4.ip_local_port_range = 10000 65535
备注<5>
对于64G内存的操作系统,建议配置如下值:
vm.dirty_background_ratio = 0
vm.dirty_ratio = 0
vm.dirty_background_bytes = 1610612736 # 1.5GB
vm.dirty_bytes = 4294967296 # 4GB
对于⼩于64G内存的操作系统,建议配置如下值:
vm.dirty_background_ratio = 3
vm.dirty_ratio = 10
3  配置Linux⽂件描述符
配置如下参数到/etc/f⽂件中:
* soft nofile 524288
* hard nofile 524288
* soft nproc 131072
* hard nproc 131072
4  挂在磁盘
官⽅建议使⽤XFS磁盘类型,当然其他磁盘类型也是可以
⽰例配置如下:
将/dev/data磁盘挂载到/data⽬录下,配置/etc/fstab⽂件以使Linux系统启动默认挂载磁盘,如下配置添加到⽂件/etc/fstab:/dev/data /data xfs nodev,noatime,nobarrier,inode64 0 0
5  关闭防⽕墙
⾃⾏检查
# systemctl status firewalld
# systemctl stop firewalld.service
# systemctl disable firewalld.service
# /sbin/chkconfig iptables off
6  配置系统时钟
配置segment主机与master时钟同步
将如下配置加⼊到/f⽂件中:
server mdw prefer
mdw为前⾯master配置的域名
7  重启系统,让所有配置⽣效
三、安装GreenPlum数据库,并配置gpadmin⽤户
该步骤主要是安装GreenPlum软件包,创建gpadmin⽤户并配置⽬录权限
以下⽰例通过ansible-playbook安装,也可以通过yum、apt等包管理⼯具安装:
1.在ansible主机的/etc/ansible/hosts上配置对应的机器域名:
[greenplum]
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
10.0.0.5
可配置连接⽤户名或密码,如:
[greenplum]
10.0.0.1  ansible_ssh_user=root ansible_ssh_pass=xxx
10.0.0.2  ansible_ssh_user=root ansible_ssh_pass=xxx
10.0.0.3  ansible_ssh_user=root ansible_ssh_pass=xxx
10.0.0.4  ansible_ssh_user=root ansible_ssh_pass=xxx
10.0.0.5  ansible_ssh_user=root ansible_ssh_pass=xxx
2.Ansible Playbook样例
Ansible Playbook - Greenplum Database Installation for CentOS 7

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。