部署结构

| 主机名称 | IP | 节点说明 | 节点介绍 | 
|---|---|---|---|
| mdw | 10.30.16.140 | 主节点 | master节点 | 
| sdw1 | 10.30.16.141 | 从节点 | 每台部署两个主seg节点 两台镜像seg节点,提高可用性 | 
| sdw2 | 10.30.16.142 | 从节点 | 
环境准备
1. 关闭selinux 和防火墙
一、selinux关闭(1)永久关闭sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config 重启服务器状态检查 sestatus(2)临时关闭sudo setenforce 0状态检查getenforce状态变为 Permissive二、关闭防火墙(1)设置开机启用防火墙:systemctl enable firewalld.service(2)设置开机禁用防火墙:systemctl disable firewalld.service(3)启动防火墙:systemctl start firewalld(4)关闭防火墙:systemctl stop firewalld(5)检查防火墙状态:systemctl status firewalld
2. 给ip配置域名,方便解析
MASTER节点需要配置自己及所有segment节点的host解析
#vim /etc/hosts粘贴10.30.16.140 mdw10.30.16.141 sdw110.30.16.142 sdw2
3. 创建gpadmin用户和用户组 在master主机操作(master服务器)
一、删除原有用户信息(1)删除用户组 groupdel gpadmin(2)删除用户 userdel gpadmin二、添加用户信息(1)创建组gpadmin组 groupadd gpadmin(2)创建gpadmin用户 useradd gpadmin -r -m -g gpadmin(3)对文件夹进行赋权 chown -R gpadmin:gpadmin /home/gpadmin/(4)为gpadmin创建密码 passwd gpadmin
4. 设置系统推荐参数 (参数配置参考待补充)
vi /etc/sysctl.conf添加kernel.shmall =2033274#kernel.shmmax = kernel.shmall * PAGE_SIZEkernel.shmmax = 8328290304kernel.shmmni = 4096vm.overcommit_memory = 2vm.overcommit_ratio = 95net.ipv4.ip_local_port_range = 10000 65535kernel.sem = 500 2048000 200 40960kernel.sysrq = 1kernel.core_uses_pid = 1kernel.msgmnb = 65536kernel.msgmax = 65536kernel.msgmni = 2048net.ipv4.tcp_syncookies = 1net.ipv4.conf.default.accept_source_route = 0net.ipv4.tcp_tw_recycle=1net.ipv4.tcp_max_syn_backlog = 4096net.ipv4.conf.all.arp_filter = 1net.core.netdev_max_backlog = 10000net.core.rmem_max = 2097152net.core.wmem_max = 2097152vm.swappiness = 10vm.zone_reclaim_mode = 0vm.dirty_expire_centisecs = 500vm.dirty_writeback_centisecs = 100vm.dirty_background_ratio = 3保存 wq执行 命令awk 'BEGIN {OFMT = "%.0f";} /MemTotal/ {print "vm.min_free_kbytes =", $2 * .03;}' /proc/meminfo >> /etc/sysctl.conf生成vm.min_free_kbytes参数执行sysctl -p 生效
5. 修改limits.conf 系统资源限制
vi /etc/security/limits.conf追加一下内容* soft nofile 65536* hard nofile 65536* soft nproc 131072* hard nproc 131072注释:*表示所有用户
主节点gp安装配置
1. 在master节点gp安装
(1)新建存放gp安装包目录 mkdir /usr/greenplum(2)将gp安装包导入目录(3)gp安装 yum install -y ./greenplum-db-6.5.0-rhel7-x86_64.rpm注释: 执行 此操作可以 顺带安装依赖 不需要手动安装(4)应用gp命令 source /usr/local/greenplum-db/greenplum_path.sh
2. 配置连接各个服务器文件hosts
(1)在master主机创建包含所有节点的all_hosts,将所有服务器名记录再里面创建 all_hosts文件vi /usr/local/greenplum-db/all_hosts加入mdwsdw1sdw2(2)在master主机 创建seg_hosts只保存segment节点的hostnamevi /usr/local/greenplum-db/seg_hosts加入sdw1sdw2(3)修改文件权限chown -R gpadmin:gpadmin /usr/local/greenplum*
打通所有服务器
1. 使用root 用户打通所有服务器
进入数据库目录cd /usr/local/greenplum-db(1)生成密钥 ssh-keygen(2)将本机的公钥复制到各个机器的authorized_keys文件中ssh-copy-id sdw1ssh-copy-id sdw2(3)指定计算机名称 hostnamectl set-hostname mdw(4)打通服务器 gpssh-exkeys -f /usr/local/greenplum-db/all_hosts(5)验证是否打通gpssh -f /usr/local/greenplum-db/all_hosts -e 'ls /usr/local/'出现每个服务器信息即为打通成功
2. 使用gpadmin用户打通所有服务器
一 批量添加gpadmin用户(1)批量添加gpadmin用户gpssh -f /usr/local/greenplum-db/seg_hosts -e 'groupadd gpadmin;useradd gpadmin -r -m -g gpadmin;echo "rh2020gpadmin" | passwd --stdin gpadmin;'(2)校验gpadmin用户gpssh -f /usr/local/greenplum-db/seg_hosts -e 'ls /home/'二 使用gpadmin用户打通所有服务器(1)切换gpadmin用户 su - gpadmin(2)应用greenplum命令 source /usr/local/greenplum-db/greenplum_path.sh(3)生成密钥 ssh-keygen(3)将本机的公钥复制到各个机器的authorized_keys文件中ssh-copy-id sdw1ssh-copy-id sdw2(4)打通服务器 gpssh-exkeys -f /usr/local/greenplum-db/all_hosts(5)验证是否打通gpssh -f /usr/local/greenplum-db/all_hosts -e 'ls /usr/local/'出现每个服务器信息即为打通成功
配置服务器环境
1. 配置服务器中gpadmin环境变量
一 批量设置greenplum在gpadmin用户下的环境变量(1) 编辑./bash_profile(直接复制3行粘贴执行)cat >> /home/gpadmin/.bash_profile << EOFsource /usr/local/greenplum-db/greenplum_path.shEOF(2) 编辑.bashrc(直接复制3行粘贴执行)cat >> /home/gpadmin/.bashrc << EOFsource /usr/local/greenplum-db/greenplum_path.shEOF二 将环境变量分发到各个节点(1) 分发./bash_profilegpscp -f /usr/local/greenplum-db/seg_hosts /home/gpadmin/.bash_profile gpadmin@=:/home/gpadmin/.bash_profile(2) 分发.bashrcgpscp -f /usr/local/greenplum-db/seg_hosts /home/gpadmin/.bashrc gpadmin@=:/home/gpadmin/.bashrc
2. 分发系统参数到segment主机
(1)切换到root用户 su - root(2)应用环境变量 source /usr/local/greenplum-db/greenplum_path.sh(3)分发hosts文件gpscp -f /usr/local/greenplum-db/seg_hosts /etc/hosts root@=:/etc/hosts(4)分发limits.confgpscp -f /usr/local/greenplum-db/seg_hosts /etc/security/limits.conf root@=:/etc/security/limits.conf(5)分发sysctl.conf 文件gpscp -f /usr/local/greenplum-db/seg_hosts /etc/sysctl.conf root@=:/etc/sysctl.conf(6)应用sysctl参数gpssh -f /usr/local/greenplum-db/seg_hosts -e 'sysctl -p'(7)重启全部服务器gpssh -f /usr/local/greenplum-db/all_hosts -e 'reboot'
在segment主机安装greenplum
1 在master主机打包greenplum
(1)赋予gp目录 的权限给gpadmin用户chown -R gpadmin:gpadmin /usr/local/greenplum-db-6.5.0(2)删除已有压缩包rm -f /usr/local/greenplum-db-6.5.0.tar;rm -f /usr/local/greenplum-db-6.5.0.tar.gz;(3)打包gpadmincd /usr/local; tar cf greenplum-db-6.5.0.tar greenplum-db-6.5.0gzip /usr/local/greenplum-db-6.5.0.tar(4)应用环境变量 source /usr/local/greenplum-db/greenplum_path.sh
2 分发安装包到segment服务器,并安装
(1)删除服务器中tar包 gz包gpssh -f /usr/local/greenplum-db-6.5.0/seg_hosts -e "mkdir -p /usr/local;rm -rf /usr/local/greenplum-db-6.5.0;rm -rf /usr/local/greenplum-db-6.5.0.tar;rm -rf /usr/local/greenplum-db-6.5.0.tar.gz"(2)将压缩包上传到segment服务器gpscp -f /usr/local/greenplum-db-6.5.0/seg_hosts /usr/local/greenplum-db-6.5.0.tar.gz root@=:/usr/local/greenplum-db-6.5.0.tar.gz(3)在segment服务器上解压gpssh -f /usr/local/greenplum-db-6.5.0/seg_hosts -e "cd /usr/local;gzip -f -d /usr/local/greenplum-db-6.5.0.tar.gz;tar xf /usr/local/greenplum-db-6.5.0.tar"(4)删除 segment服务器上压缩包gpssh -f /usr/local/greenplum-db-6.5.0/seg_hosts -e "rm -rf /usr/local/greenplum-db-6.5.0.tar;rm -rf /usr/local/greenplum-db-6.5.0.tar.gz;rm -f /usr/local/greenplum-db"(5)建立软连接greenplum-db-6.5.0 到greenplum-dbgpssh -f /usr/local/greenplum-db-6.5.0/seg_hosts -e ln -fs /usr/local/greenplum-db-6.5.0 /usr/local/greenplum-db(6)给segment服务器上安装目录赋权限gpssh -f /usr/local/greenplum-db-6.5.0/seg_hosts -e "chown -R gpadmin:gpadmin /usr/local/greenplum-db;chown -R gpadmin:gpadmin /usr/local/greenplum-db-6.5.0"(7)给segment服务器应用 gp环境gpssh -f /usr/local/greenplum-db-6.5.0/seg_hosts -e "source /usr/local/greenplum-db-6.5.0/greenplum_path.sh"(8) 查看segment local底下目录gpssh -f /usr/local/greenplum-db-6.5.0/seg_hosts -e "cd /usr/local;ll"
配置集群,为初始化gp做准备
1. 创建数据库目录
(1)创建master数据库目录 ,并给目录赋权mkdir -p /opt/greenplum/data/masterchown gpadmin:gpadmin /opt/greenplum/data/master(2)创建standby 数据目录,并给目录赋权source /usr/local/greenplum-db/greenplum_path.shgpssh -h sdw2 -e 'mkdir -p /data/master'gpssh -h sdw2 -e 'chown gpadmin:gpadmin /data/master'(3)创建segment主机数据目录,并给目录赋权在segment建两个实例,两个镜像gpssh -f /usr/local/greenplum-db/seg_hosts -e 'mkdir -p /opt/greenplum/data1/primary'gpssh -f /usr/local/greenplum-db/seg_hosts -e 'mkdir -p /opt/greenplum/data1/mirror'gpssh -f /usr/local/greenplum-db/seg_hosts -e 'mkdir -p /opt/greenplum/data2/primary'gpssh -f /usr/local/greenplum-db/seg_hosts -e 'mkdir -p /opt/greenplum/data2/mirror'gpssh -f /usr/local/greenplum-db/seg_hosts -e 'chown -R gpadmin /opt/greenplum/data*'
2. 网络测试
gpcheckperf -f /usr/local/greenplum-db/seg_hosts -r N -d /tmp/usr/local/greenplum-db/./bin/gpcheckperf -f /usr/local/greenplum-db/seg_hosts -r N -d /tmp
3. 时间校验
gpssh -f /usr/local/greenplum-db/all_hosts -e 'date'
4. 部署chronyd同步服务器时间(最好部署,同步时间对集群来说很重要)
结构介绍
| IP | 主机名 | 操作系统 | 描述 | 同步方式 | 
|---|---|---|---|---|
| 10.30.16.140 | mdw | centos7.0 | 向阿里云提供的公网NTP服务器同步时间 | chronyd服务平滑同步 | 
| 10.30.16.141 | sdw1 | centos7.0 | 向10.30.16.140同步时间 | chronyd服务平滑同步 | 
| 10.30.16.142 | sdw2 | centos7.0 | 向10.30.16.140同步时间 | chronyd服务平滑同步 | 
1) 配置mdw 主机 ,同步阿里云ntp服务器时间
一 安装并配置chrony(1)使用yum安装 yum -y install chrony(2)备份chrony.confmv /etc/chrony.conf /etc/chrony.conf.bak(3)编辑 chrony.conf 文件vi /etc/chrony.confserver ntp1.aliyun.com iburst minpoll 4 maxpoll 10server ntp2.aliyun.com iburst minpoll 4 maxpoll 10server ntp3.aliyun.com iburst minpoll 4 maxpoll 10server ntp4.aliyun.com iburst minpoll 4 maxpoll 10server ntp5.aliyun.com iburst minpoll 4 maxpoll 10server ntp6.aliyun.com iburst minpoll 4 maxpoll 10server ntp7.aliyun.com iburst minpoll 4 maxpoll 10# 记录系统时钟获得/丢失时间的速率至drift文件中driftfile /var/lib/chrony/drift# 如果系统时钟的偏移量大于10秒,则允许在前三次更新中步进调整系统时钟makestep 10 3# 启用RTC(实时时钟)的内核同步rtcsync# 只允许10.30.16网段的客户端进行时间同步allow 10.30.16.0/24# 阿里云提供的公网NTP服务器不可用时,采用本地时间作为同步标准local stratum 10# 指定包含NTP验证密钥的文件keyfile /etc/chrony.keys# 指定存放日志文件的目录logdir /var/log/chrony# 让chronyd在选择源时忽略源的层级stratumweight 0.05# 禁用客户端访问的日志记录noclientlog# 如果时钟调整大于0.5秒,则向系统日志发送消息logchange 0.5(4)启动chronyd服务启动chronyd服务 systemctl start chronyd.service查看chronyd 服务状态 systemctl status chronyd.service设置开机自启动chronyed服务 systemctl enable chronyd.service查看时间同步源 chronyc sources -v
2) 配置seg 主机 ,master服务器时间(分别再segment主机部署)
一 安装并配置chrony(1)使用yum安装 yum -y install chrony(2)备份chrony.confmv /etc/chrony.conf /etc/chrony.conf.bak(3)编辑 chrony.conf 文件vi /etc/chrony.confserver 10.30.16.140 iburstdriftfile /var/lib/chrony/driftmakestep 10 3rtcsynclocal stratum 10keyfile /etc/chrony.keyslogdir /var/log/chronystratumweight 0.05noclientloglogchange 0.5(4)启动chronyd服务启动chronyd服务 systemctl start chronyd.service查看chronyd 服务状态 systemctl status chronyd.service设置开机自启动chronyed服务 systemctl enable chronyd.service查看时间同步源 chronyc sources -v
5. 配置初始化环境变量
(1)切换gpadmin用户 su - gpadmin(2)修改.bash_profile 文件 执行cat >> /home/gpadmin/.bash_profile << EOFexport MASTER_DATA_DIRECTORY=/opt/greenplum/data/master/gpseg-1EOF(3)修改.bashrc 文件 执行cat >> /home/gpadmin/.bashrc << EOFexport MASTER_DATA_DIRECTORY=/opt/greenplum/data/master/gpseg-1EOF(4)分发变量gpscp -f /usr/local/greenplum-db/seg_hosts /home/gpadmin/.bash_profile gpadmin@=:/home/gpadmin/.bash_profilegpscp -f /usr/local/greenplum-db/seg_hosts /home/gpadmin/.bashrc gpadmin@=:/home/gpadmin/.bashrcgpssh -f /usr/local/greenplum-db/all_hosts -e 'source /home/gpadmin/.bash_profile;source /home/gpadmin/.bashrc;'
6. 配置初始化文件
(1)创建文件目录 mkdir -p /home/gpadmin/gpconfigs(2)复制初始化模板文件cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/gpconfigs/gpinitsystem_config(3)配置初始化文件vi /home/gpadmin/gpconfigs/gpinitsystem_configARRAY_NAME="Greenplum Data Platform"SEG_PREFIX=gpsegPORT_BASE=6001declare -a DATA_DIRECTORY=(/opt/greenplum/data1/primary /opt/greenplum/data2/primary)MASTER_HOSTNAME=mdwMASTER_DIRECTORY=/opt/greenplum/data/masterMASTER_PORT=5432TRUSTED_SHELL=sshCHECK_POINT_SEGMENTS=8ENCODING=UNICODEMIRROR_PORT_BASE=7000declare -a MIRROR_DATA_DIRECTORY=(/opt/greenplum/data1/mirror /opt/greenplum/data2/mirror)DATABASE_NAME=gpdw
集群初始化
1.执行集群初始化步骤
gpinitsystem -c /home/gpadmin/gpconfigs/gpinitsystem_config -h /usr/local/greenplum-db/seg_hosts -D
2. 配置gpadmin环境变量
(1)编辑 .bash_profilesu - gpadmincat >> /home/gpadmin/.bash_profile << EOFexport PGPORT=5432export PGUSER=gpadminexport PGDATABASE=gpdwEOF(2)编辑 .bashrccat >> /home/gpadmin/.bashrc << EOFexport PGPORT=5432export PGUSER=gpadminexport PGDATABASE=gpdwEOF(3)环境变量文件分发到其他节点gpscp -f /usr/local/greenplum-db/seg_hosts /home/gpadmin/.bash_profile gpadmin@=:/home/gpadmin/.bash_profilegpscp -f /usr/local/greenplum-db/seg_hosts /home/gpadmin/.bashrc gpadmin@=:/home/gpadmin/.bashrcgpssh -f /usr/local/greenplum-db/all_hosts -e 'source /home/gpadmin/.bash_profile;source /home/gpadmin/.bashrc;'
3. 关闭数据库,重启服务器
gpstop -a重启所有服务器
4. 启动gp
gpstart -a
