暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Greenplum7.1安装配置

原创 数巨小码人 2024-11-08
419

1.Greenplum7.1的编译

Greenplum安装可以使用官方发布的安装包也可以通过源码编译安装
这次我们从最基础的源码编译开始
1、下载Greenplum7.1源码压缩包:

greenplum-7.1.0-src-full.zip

2、解压

Unzip greenplum-7.1.0-src-full.zip

3、

mkdir -p `pwd`/gpsql  &&  ./configure --prefix=`pwd`/gpsql --disable-orca --without-zstd --without-python --disable-gpfdist

由于是TPCC测试一些没有必要的组件比如ORAC就不需要编译了,configure时需要指定后续安装目录,我这里就指定了gpsql目录。
Configure过程中会对greenplum编译依赖的组件进行检查,如果发现编译环境下没有安装就会报错,大家只需要根据检查结果补漏安装就可以。
例如: bzip2-devel libcurl-devel 这些开发包centos默认是不会安装的,大家可以使用内部yum源安装或者直接下载rpm包手工安装。

rpm -ivh bzip2-devel-1.0.6-13.el7.x86_64.rpm
rpm -ivh libcurl-devel-7.29.0-46.el7.x86_64.rpm

4、编译

make -j4 && make install

使用4核并行编译更快,这样就把Greenplum编译完了。

2.搭建单节点greenplum环境:

Greenplum可以支持单节点部署,即在一个节点上部署一个coordinator一个segment,下面说明这种部署方式:
1、环境准备
Greenplum7.1依赖python3而不是python2,而centos7默认安装的是python2,需要手工安装python3。另外为了测试时尽量不影响其他人,python3只自己使用,则创建软连接ln -s /usr/bin/python3 python 并在自己的登陆脚本中增加export PATH=/home/xuchunpeng/depand:$PATH,这样只有自己的环境下python默认就是python3,而其他用户还是系统默认的python2。
另外Greenplum7还需要如下两个安装包:

psutil-5.8.0-cp36-cp36m-manylinux1_x86_64.whl
psycopg2_binary-2.8.3-cp36-cp36m-manylinux1_x86_64.whl

使用pip3 直接安装

2、配置文件修改
安装Greenplum一般使用gpinitsystem_***配置文件,如果是单点Greenplum对应的是gpinitsystem_singlenode,如果是多点集群则对应gpinitsystem_conf
对于单点部署这个配置文件只需要修改如下几个配置项:

//segment数据目录
declare -a DATA_DIRECTORY=(/home/xuchunpeng/gpdata1)
//coordinator节点hostname
COORDINATOR_HOSTNAME=db1
//coordinator目录  
COORDINATOR_DIRECTORY=/home/xuchunpeng/gpcoordinator
对应目录需要创建 mkdir -p /home/xuchunpeng/gpdata1 /home/xuchunpeng/gpcoordinator
//coordinator端口
COORDINATOR_PORT=12345

除了上面这个配置文件之外还需要hostfile,单点对应hostfile_singlenode
对于单点这个文件只有一行就是coordinator对应的hostname db1

3、配置环境变量
greenplum_path.sh是Greenplum的环境配置脚本。
在自己的登陆脚本中添加执行

source greenplum_path.sh

另外对应配置信息也需要在登陆脚本中配置

export PGPORT=12345
export COORDINATOR_DATA_DIRECTORY = /home/xuchunpeng/gpcoordinator/gpsne-1

最后执行source 设置环境变量

source .bash_profile

4、配置ssh互信
这个单点其实没有意义,多点部署是需要的

ssh-keygen -t rsa
ssh-copy-id xuchunpeng@db1

5、安装单点集群

./gpinitsystem -c gpinitsystem_singlenode  -a

这个相当于其他数据库的initdb,执行后会自动启动coordinator节点以及segment节点。
6、检测安装是否成功
gpstate 查看集群状态
psql –l
createdb test
psql test 登陆数据库执行几条对应sql测试一下
dropdb test
gpstop 停集群
gpstart 启动集群
如果一切正常则标志集群安装成功

3.搭建多点集群环境

环境规划:3节点环境

10.12.2.126                     master + 4segment
10.12.2.128                     4segment
10.12.2.129                     4segment

多节点和单节点安装流程基本相似,下面把我搭建环境的过程列出来,但就不一一解释了。
第一步 打包二进制文件复制到不同节点上并解压

tar cvf gpsql.tar gpsql
scp 
tar -xvf gpsql.tar

第二步 每个创建用户

 gpadmin: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 
gpadmin111

第三步每个节点环境准备:
GP使用PYTHON3
mkdir -p depand

在/home/gpadmin/depand目录下创建符号连接
ln -s /usr/bin/python3 python
设置环境变量,将这句话放入.bash_profile中
export PATH=/home/gpadmin/depand:$PATH
source .bash_profile

第四步安装python插件

pip3 install psutil-5.8.0-cp36-cp36m-manylinux1_x86_64.whl
pip3 install psycopg2_binary-2.8.3-cp36-cp36m-manylinux1_x86_64.whl

126作为master节点
将编译后的安装包拷贝到126上解压缩:

scp gpsql.tar gpadmin@10.12.2.126:/home/gpadmin
tar -xvf gpsql.tar

第五步设置环境变量

source greenplum_path.sh

配置节点ssh互信

ssh-keygen -t rsa
ssh-copy-id gpadmin@node126-1
ssh-copy-id gpadmin@node128-1
ssh-copy-id gpadmin@node129-1

./gpssh-exkeys -f ../conf/hostfile
gpssh -f ../conf/hostfile

第六步分发安装包到各个节点上解压

gpsync -f hostfile gpsql.tar =:/home/gpadmin 
gpssh -f hostfile

cd /home/gpdamin
tar -xvf gpsql.tar

第七步创建数据目录

gpssh -f hostfile
mkdir gpdata
cd gpdata
mkdir gpmaster gpdatap1 gpdatap2 gpdatap3 gpdatap4 gpdatam1 gpdatam2 gpdatam3 gpdatam4

每个节点设置环境变量,放入.bash_profile中

source  /home/gpadmin/gpsql/greenplum_path.sh
export COORDINATOR_DATA_DIRECTORY=/home/gpadmin/gpdata/gpmaster/gpseg-1
export PGPORT=12345
export PGDATABASE=testdb

source .bash_profile

第八步修改配置文件gpinitsystem_config

#### Naming convention for utility-generated data directories.
SEG_PREFIX=gpseg

#### Base number by which primary segment port numbers
#### are calculated.
PORT_BASE=33000

#### File system location(s) where primary segment data directories
#### will be created. The number of locations in the list dictate
#### the number of primary segments that will get created per
#### physical host (if multiple addresses for a host are listed in
#### the hostfile, the number of segments will be spread evenly across
#### the specified interface addresses).
declare -a DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatap1 /home/gpadmin/gpdata/gpdatap2 /home/gpadmin/gpdata/gpdatap3 /home/gpadmin/gpdata/gpdatap4 /home/gpadmin/gpdata/gpdatap5 /home/gpadmin/gpdata/gpdatap6 /home/gpadmin/gpdata/gpdatap7 /home/gpadmin/gpdata/gpdatap8)

#### OS-configured hostname or IP address of the coordinator host.
COORDINATOR_HOSTNAME=node126-1

#### File system location where the coordinator data directory
#### will be created.
COORDINATOR_DIRECTORY=/home/gpadmin/gpdata/gpmaster

#### Port number for the coordinator instance.
COORDINATOR_PORT=12345

#### Shell utility used to connect to remote hosts.
TRUSTED_SHELL=ssh

#### Default server-side character set encoding.
ENCODING=UNICODE

第九步 initdb

gpinitsystem -c /home/gpadmin/gpsql/conf/gpinitsystem_config -h /home/gpadmin/gpsql/conf/hostfile -a
ps -aux | grep gpadmin | grep postgres

第十步检测
检测状态

gpstate
psql -l
createdb testdb
psql testdb
dropdb testdb

关闭gp gpstop
启动gp gpstart

最后修改时间:2024-11-08 17:28:27
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论