前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Snova基础篇(二):原生环境greenplum集群编译安装

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

原创
作者头像
snova-最佳实践
修改2019-12-20 11:59:52
8400
修改2019-12-20 11:59:52
举报

本节主要从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.源代码编译安装(未完待续)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.集群规划:
  • 2.rpm预编译方式安装(简单高效,出错率更低,自定义稍差)
  • (一)基础环境配置-OS层面
  • (二)开始安装:
  • (三)数据库初始化
  • 3.源代码编译安装(未完待续)
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档