Snova基础篇(二):原生环境greenplum集群编译安装

2019-12-20 11:59:52 浏览数 (1)

本节主要从snova原生环境-greenplum编译安装入手,熟悉原生环境操作及使用。

目录:

  1. GP集群规划
  2. RPM预编译安装
  3. 源代码编译安装

基本概念:

GP

greenplum 5.21.1

cvm

腾讯云服务器


1.集群规划:

采用PG高可用架构,master部署两台,segment host部署部署两台,集群环境腾讯云CVM

节点名称

数量

配置

pg-master

1

Centos7 1核2G 50G云盘 swap1G

pg-standby

1

Centos7 1核2G 50G云盘 swap1G

segment-host

2

Centos7 1核2G 50G云盘 swap1G

htop查看机器情况:

2.rpm预编译方式安装(简单高效,出错率更低,自定义稍差)

(一)基础环境配置-OS层面

  • 系统准备: 根据需要在四台机安装,如已安装可跳过
代码语言:javascript复制
yum install ntp vim 
  • sysctl参数:以下参数是根据腾讯云服务器配置调试完成的,不同环境还会有差异。

四台机器都需要修改

代码语言:javascript复制
vi /etc/sysctl.conf   
代码语言:javascript复制
kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000
kernel.sem = 500 1024000 200 4096
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
net.ipv4.tcp_syncookies = 1
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.ip_local_port_range = 10000 65535
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.overcommit_memory = 2
net.ipv4.ip_forward = 0
代码语言:javascript复制
sysctl -p   //配置生效命令
sysctl -a   //打印配置参数信息
  • limits.conf 所有机器修改,添加如下参数
代码语言:javascript复制
vim /etc/security/limits.conf 

* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
//此配置参数为及时生效,但是需要登录到新的会话页面查看。
  • 磁盘预读参数及 deadline算法修改:四台机器修改
代码语言:javascript复制
blockdev --setra 65536 /dev/vda   //物理机一般为sda,云盘为vda
echo deadline > /sys/block/sda/queue/scheduler
  • 关闭防火墙:四台机器操作

Centos7 系统为firewalld 守护进程,6系统为iptables

代码语言:javascript复制
systemctl stop firewalld
systemctl disable firewalld
  • 关闭selinux:四台机修改,CVM默认关闭
代码语言:javascript复制
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config   //重启生效
setenforce 0   //当前会话生效
sestatus       //查看selinux状态
  • HOSTNAME 及hosts文件修改:四台机修改
代码语言:javascript复制
//hosts修改
172.16.0.8 gp-master
172.16.0.17 gp-standby
172.16.0.11 gp-node1
172.16.0.6 gp-node2

//hostname修改
vi /etc/sysconfig/network  //配置文件修改
NETWORKING=yes
HOSTNAME=gp-master    //各节点依次修改对应的名称

hostnamectl set-hostname gp-master   //即时生效,需要登录新会话
  • 时钟同步
代码语言:javascript复制

在每个Segment主机,以root登录编辑/etc/ntp.conf文件。设置第一个server参数指向Master主机,第二个server参数指向Standby主机。如下面:

server gp-master prefer
server gp-standby

在Standby主机,以root登录编辑/etc/ntp.conf文件。设置第一个server参数指向Master主机

server gp-master prefer

//注意配置文件修改后需重启ntpd才能生效
systemctl restart ntpd

systemctl status ntpd  //查看ntpd服务运行情况

(二)开始安装:

  • rpm安装包下载:

pivotal官方预编译版本:

代码语言:javascript复制
https://network.pivotal.io/products/pivotal-gpdb/#/releases/422445
代码语言:javascript复制
rpm -ivh greenplum-db-5.21.1-rhel7-x86_64.rpm   //安装rpm
  • master节点创建pgadmin用户并准备hosts文件,(用于批量安装软件以及后续集群的初始化)
代码语言:javascript复制
useradd gpadmin //创建用户
passwd gpadmin  //设定密码
su - gpadmin    //切换到gpadmin用户

创建两个文件:包含以下内容
[gpadmin@gp-master ~]$ cat all_hosts
gp-master
gp-standby
gp-node1
gp-node2
[gpadmin@gp-master ~]$ cat seg_hosts
gp-node1
gp-node2
  • 建立节点互信:批量执行命令及集群管理--切换回root用户,master节点执行:
代码语言:javascript复制
//以下gp命令在执行前,必须加载gp环境变量脚本,否则命令不可用
cd /home/gpadmin/
source /usr/local/greenplum-db/greenplum_path.sh
[root@gp-master gpadmin]# gpssh-exkeys -f all_hosts    //建立互信

[INFO] completed successfully    //最后输出此信息表示成功
  • 批量安装软件并在各节点创建gpadmin用户
代码语言:javascript复制
cd /home/gpadmin/
source /usr/local/greenplum-db/greenplum_path.sh
gpseginstall -f all_hosts -u gpadmin -p gpadmin

//出现下述信息表示所有节点安装成功
20160827:13:58:47:020986 gpseginstall:greenplum_master:root-[INFO]:-SUCCESS -- Requested commands completed
  • 检查是否成功
代码语言:javascript复制
su - gpadmin
source /usr/local/greenplum-db/greenplum_path.sh 
gpssh -f all_hosts -e ls -l $GPHOME
所有节点软件部署成功所有节点软件部署成功
  • 创建主节点存储目录:master,standby执行-默认root下执行更高效便捷
代码语言:javascript复制
mkdir -p /data/master
chown -R gpadmin.gpadmin /data/master/
  • 批量创建segment节点目录:master节点执行
代码语言:javascript复制
cd /home/gpadmin/
source /usr/local/greenplum-db/greenplum_path.sh
gpssh -f seg_hosts -e 'mkdir -p /data/primary'
gpssh -f seg_hosts -e 'mkdir -p /data/mirror'
gpssh -f seg_hosts -e 'chown -R gpadmin.gpadmin /data/primary'
gpssh -f seg_hosts -e 'chown -R gpadmin.gpadmin /data/mirror'
  • 集群健康状态检查,全节点基础软硬件环境检查:master执行
代码语言:javascript复制
cd /home/gpadmin/
source /usr/local/greenplum-db/greenplum_path.sh
[root@gp-master gpadmin]# gpcheck -f all_hosts -m gp-master
//如下信息代表完全无问题
20160827:16:47:47:022142 gpcheck:mdw:root-[INFO]:-dedupe hostnames
20160827:16:47:47:022142 gpcheck:mdw:root-[INFO]:-Detected platform: Generic Linux Cluster
20160827:16:47:47:022142 gpcheck:mdw:root-[INFO]:-generate data on servers
20160827:16:47:47:022142 gpcheck:mdw:root-[INFO]:-copy data files from servers
20160827:16:47:48:022142 gpcheck:mdw:root-[INFO]:-delete remote tmp files
20160827:16:47:48:022142 gpcheck:mdw:root-[INFO]:-Using gpcheck config file: /usr/local/greenplum-db/./etc/gpcheck.cnf
20160827:16:47:48:022142 gpcheck:mdw:root-[INFO]:-GPCHECK_NORMAL
20160827:16:47:48:022142 gpcheck:mdw:root-[INFO]:-gpcheck completing...

云服务器在检查时出现如下问题:磁盘预读参数,内核参数等问题,根据错误提示针对性调整即可。环境配置模块提供的内核参数,即为调整完成的。

(三)数据库初始化

  • 配置文件修改:master
代码语言:javascript复制
su - gpadmin
cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config   /home/gpadmin/gpinitsystem_config
chmod 775 gpinitsystem_config

//修改如下内容
SEG_PREFIX=gpseg
declare -a DATA_DIRECTORY=(/data/primary)
MASTER_HOSTNAME=mdw
MASTER_DIRECTORY=/data/master
MASTER_PORT=5432
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UNICODE
  • 运行初始化工具
代码语言:javascript复制
su - gpadmin
source /usr/local/greenplum-db/greenplum_path.sh 
gpinitsystem -c gpinitsystem_config -h seg_hosts
//正常情况下会输出如下日志 无报错即表示成功
20160827:16:23:11:002458 gpinitsystem:mdw:gpadmin-[INFO]:-Review options for gpinitstandby
20160827:16:23:11:002458 gpinitsystem:mdw:gpadmin-[INFO]:-------------------------------------------------------
20160827:16:23:11:002458 gpinitsystem:mdw:gpadmin-[INFO]:-The Master /data/master/gpseg-1/pg_hba.conf post gpinitsystem
20160827:16:23:11:002458 gpinitsystem:mdw:gpadmin-[INFO]:-has been configured to allow all hosts within this new
20160827:16:23:11:002458 gpinitsystem:mdw:gpadmin-[INFO]:-array to intercommunicate. Any hosts external to this
20160827:16:23:11:002458 gpinitsystem:mdw:gpadmin-[INFO]:-new array must be explicitly added to this file
20160827:16:23:11:002458 gpinitsystem:mdw:gpadmin-[INFO]:-Refer to the Greenplum Admin support guide which is
20160827:16:23:11:002458 gpinitsystem:mdw:gpadmin-[INFO]:-located in the /usr/local/greenplum-db/./docs directory
20160827:16:23:11:002458 gpinitsystem:mdw:gpadmin-[INFO]:-------------------------------------------------------

此处初始化可能会有错误,此次使用的cvm因为没有设置swap导致初始化时内存无法分配。

解决方法:

报错原因:可能swap太小或者没有交换分区 解决方法: (1)查看swap:swapon -s (2)如果什么都没有显示,说明你没有任何可用的swap,此时你可以添加1GB的swap: dd if=/dev/zero of=/swapfile bs=1024 count=1024k mkswap /swapfile swapon /swapfile (3)使swap持久化:vi /etc/fstab 加入/swapfile none swap sw 0 0

  • 查看启动进程:
主节点主节点
segment节点segment节点
standby节点standby节点
  • 加入standby节点
代码语言:javascript复制
//在master服务器上执行
gpinitstandby -s gp-standby

3.源代码编译安装(未完待续)

0 人点赞