Greenplum安装

1 安装说明

1.1 集群介绍

使用CentOS 8安装1个Master,3个Segment,每台机器命名及IP地址如下:
mdw 192.168.3.8
sdw1 192.168.3.9
sdw2 192.168.3.10
sdw3 192.168.3.11

1.2 Master与Segment说明

Master:

(1) 建立与客户羰的会话连接和管理。
(2) SQL的解析并形成分布式的执行计划。
(3) 将生成好的执行计划分发到每一个Segment节点执行。
(4) 收集Segement执行结果。
(5) Master不存储业务数据,只存储数据字典。
(6) Master主机可一主一备,分布在两台机器上。
(7) 为了提高性能,Master最好单独用一台机器。

Segement:

(1) 业务数据存取。
(2) 执行Master分发SQL语句。
(3) 相对于Master,每个Segment对等负责对应数据的存储和计算。
(4) 每台机器上可以配置一个到多个Segment。
(5) 由于每个Segment都是对等的,建议采用相同配置服务器。
(6) Segment分为Primary和Mirror两种,一般交错存放在子节点上。

2 安装环境准备

2.1 关闭防火墙(4台)

systemctl disable firewalld
systemctl stop firewalld

2.2 配置/etc/hosts(4台)

各节点之前通过节点名进行相互通信,4台服务器名称设置如下:

192.168.3.8 mdw
192.168.3.9 sdw1
192.168.3.10 sdw2
192.168.3.11 sdw3

2.3 修改内核配置参数(4台,测试可不设置)

kernel.shmall = 4000000000
kernel.shmmax = 500000000
kernel.shmmni = 4096
vm.overcommit_memory = 2 
vm.overcommit_ratio = 95 
net.ipv4.ip_local_port_range = 10000 65535 
kernel.sem = 500 2048000 200 40960
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_max_syn_backlog = 4096
net.ipv4.conf.all.arp_filter = 1
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.swappiness = 10
vm.zone_reclaim_mode = 0
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
vm.dirty_background_ratio = 0 
vm.dirty_ratio = 0
vm.dirty_background_bytes = 1610612736
vm.dirty_bytes = 4294967296

执行命令以使上面配置生效

sysctl -p

2.4 配置资源限制参数(4台,测试可不设置)

/etc/security/limits.conf

* soft nofile 524288
* hard nofile 524288
* soft nproc 131072
* hard nproc 131072

2.5 创建用户和用户组(4台)

groupdel gpadmin
userdel gpadmin
groupadd -g 530 gpadmin
useradd -g 530 -u 530 -m -d /home/gpadmin -s /bin/bash gpadmin
chown -R gpadmin:gpadmin /home/gpadmin/
passwd gpadmin

2.6 创建安装目录并赋权(4台)

mkdir /usr/local/greenplum
chown -R gpadmin:gpadmin /usr/local/greenplum/

3 集群安装部署

3.1 安装依赖(4台)

对CentOS 8 换阿里源

rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

安装依赖

yum install -y zip unzip openssh-clients ed chrony net-tools perl perl-devel perl-ExtUtils* mlocate lrzsz parted apr apr-util bzip2 krb5-devel libevent libyaml rsync

安装python2

yum install python2
ln -s /usr/bin/python2 /usr/bin/python

3.2 执行安装程序

3.2.1 下载最新版的Greenplum
https://github.com/greenplum-db/gpdb/releases

上传mdw主机后执行以下命令:

rpm -ivh open-source-greenplum-db-*-rhel8-x86_64.rpm

greenplum会安装到/usr/local目录下,需要把目录权限赋于gpadmin用户

chown -R gpadmin:gpadmin /usr/local/greenplum*
3.2.2 集群互信,免密登陆(gpadmin用户执行)
su - gpadmin
ssh-keygen -t rsa
ssh-copy-id mdw
ssh-copy-id sdw1
ssh-copy-id sdw2
ssh-copy-id sdw3

• 创建 hostlist,seg_hosts (Master)
目录/home/gpadmin/conf,再分别创建hostlist,seg_hosts 。hostlist 中填写所有节点的主机别名,seg_hosts 中填写所有Segment 的主机别名。

mkdir /home/gpadmin/conf
cd /home/gpadmin

vi /home/gpadmin/conf/hostlist

mdw
sdw1
sdw2
sdw3

vi /home/gpadmin/conf/seg_hosts

sdw1
sdw2
sdw3

应用环境变量

source /usr/local/greenplum-db-*/greenplum_path.sh

• 使用gpssh-exkeys 工具,打通n-n的免密登陆

gpssh-exkeys -f conf/hostlist
3.2.2 分发数据库文件(root用户执行)
cd /usr/local
tar -cvf gp6.tar greenplum-db-*/
chown -R gpadmin:gpadmin /usr/local/gp6.tar

• 分发

gpscp -f /home/gpadmin/conf/hostlist gp6.tar =:/usr/local/greenplum

• 解压(gpadmin用户执行)

在master上运行,一台上敲命令,操作4台。

source /usr/local/greenplum-db-*/greenplum_path.sh
gpssh -f /home/gpadmin/conf/hostlist
=> cd /usr/local/greenplum
=> tar -xvf gp6.tar
=> ln -s greenplum-db-* greenplum-db

3.3 环境配置

3.3.1 创建数据存储空间

以上安装的是程序,接下来要创建数据存储空间 。

• Master

Master 不存储 user data,仅有 system catalog tables 和 system metadata ,这里没有 Standby Master。所以,只在 Master 创建一个目录即可。

mkdir -p /home/gpadmin/data/master

• Segment

数据存储在Segment 中,并且需要 primary segments 和 mirror segments,其余3台segment 用 gpssh分别创建2个目录。

source /usr/local/greenplum-db/greenplum_path.sh 
gpssh -f /home/gpadmin/conf/seg_hosts -e 'mkdir -p /home/gpadmin/data/primary'
gpssh -f /home/gpadmin/conf/seg_hosts -e 'mkdir -p /home/gpadmin/data/mirror'
3.3.2 配置 .bash_profile 环境变量(4台,先在master中做完后推送)

修改/usr/local/greenplum/greenplum-db/greenplum_path.sh
在图中位置加入:

GPHOME=/usr/local/greenplum/greenplum-db
image.png

vi /home/gpadmin/.bash_profile

source /usr/local/greenplum/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/home/gpadmin/data/master/gpseg-1
export PGPORT=5432
export PGUSER=gpadmin

• 使之生效

source /home/gpadmin/.bash_profile

推送

gpscp -f /home/gpadmin/conf/seg_hosts /usr/local/greenplum/greenplum-db/greenplum_path.sh gpadmin@=:/usr/local/greenplum/greenplum-db/greenplum_path.sh

gpscp -f /home/gpadmin/conf/seg_hosts /home/gpadmin/.bash_profile gpadmin@=:/home/gpadmin/.bash_profile
3.3.3 初始化配置文件

• configuration file

模板在:$GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config,拷贝过来。

mkdir /home/gpadmin/gpconfigs
cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/gpconfigs/gpinitsystem_config

vi /home/gpadmin/gpconfigs/gpinitsystem_config

#数据库代号
ARRAY_NAME="Greenplum"

#segment前缀
SEG_PREFIX=gpseg

#primary segment 起始的端口号
PORT_BASE=33000

#指定primary segment的数据目录,网上写的是多个相同目录,多个目录表示一台机器有多个segment
declare -a DATA_DIRECTORY=(/home/gpadmin/data/primary)

#master所在机器的host name
MASTER_HOSTNAME=mdw

#master的数据目录
MASTER_DIRECTORY=/home/gpadmin/data/master

#master的端口
MASTER_PORT=5432

#指定bash的版本
TRUSTED_SHELL=/usr/bin/ssh

#将日志写入磁盘的间隔,每个段文件通常 =16MB < 2 * CHECK_POINT_SEGMENTS + 1
CHECK_POINT_SEGMENTS=8

#字符集
ENCODING=UNICODE

#mirror segment 起始的端口号
MIRROR_PORT_BASE=44000

# mirror的数据目录,和主数据一样,一个对一个,多个对多个
declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/data/mirror)

• host file
vi gpconfigs/hostfile_gpinitsystem

sdw1
sdw2
sdw3
3.3.4 初始化数据库

安装

cd ~
gpinitsystem -c gpconfigs/gpinitsystem_config -h gpconfigs/hostfile_gpinitsystem

期间会提示,是否继续,输入y即可
初始化失败处理

rm -rf /home/gpadmin/data/master/gpseg-1
gpssh -f /home/gpadmin/conf/seg_hosts
=> rm -rf /home/gpadmin/data/primary/*
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353

推荐阅读更多精彩内容

  • 架构:默认Grouped Miior,建议Spread Mirror 目录:第一部分 - Linux Config...
    saup007阅读 5,935评论 1 10
  • 点点滴滴,简单记录。第一次写,不足之处请多包涵 文档说明: 1.greenplum-db 5.10.2版本安装,网...
    瞬即逝转阅读 3,210评论 0 2
  • 官网下载地址:https://network.pivotal.io/products/pivotal-gpdb#/...
    朋_鹏阅读 1,825评论 0 1
  • GREENPLUM的安装和部署 在虚拟机上安装greenplum:1.操作系统redhat 2.6.18-53.e...
    Michael_林阅读 2,995评论 0 5
  • 环境准备 本文只搭建一个虚拟机,适合初学者练习,同时本文也列出了现实中集群部署的操作与建议。 VMWare虚拟机分...
    WESTWALL阅读 7,087评论 0 2