Centos安装单节点Greenplum数据库

Greenplum 是全球领先的大数据分析引擎,专为分析、机器学习和AI而打造

一、环境准备

系统:Centos 7.9

1、安装环境说明

单节点部署时,主机上部署一个master节点和两个segment

2、服务器地址

192.168.1.5

3、相关路径

数据文件路径:/data
master文件路径:/data/gpmaster
segment文件路径:/data/gpdata1/data/gpdata2
配置文件路径:/home/gpadmin/gpconfigs
数据库管理员:gpadmin
默认数据库名称:gpdb

注意:以下操作均在root用户下操作,否则命令前增加sudo

4、关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service  # 禁用开机启动

5、关闭SELINUX

vim /etc/selinux/config改为:SELINUX=disabled
可以通过getenforce命令检查,返回Disabled
或者可以直接通过命令修改

6、修改机器名

hostnamectl set-hostname Greenplum

7、修改host

8、配置内核

vim /etc/sysctl.conf

kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000
kernel.sem = 250 512000 100 2048
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

执行以下命令使配置生效:

sysctl -p

vim /etc/security/limits.conf

* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

9、创建组和用户

groupadd gpadmin
useradd gpadmin -g gpadmin -d /home/gpadmin
passwd gpadmin

10、重启服务器

reboot

二、安装Greenplum数据库

1、下载Greenplum安装包

https://github.com/greenplum-db/gpdb/releases/download/6.21.3/open-source-greenplum-db-6.21.3-rhel7-x86_64.rpm

2、安装必要组件

yum install apr apr-util krb5-devel

3、安装Greenplum

rpm -Uvh open-source-greenplum-db-6.21.3-rhel7-x86_64.rpm

报错,缺少依赖(环境不同可能缺的依赖不同)

错误:依赖检测失败:
        bzip2 被 open-source-greenplum-db-6-6.21.3-1.el7.x86_64 需要
        libyaml 被 open-source-greenplum-db-6-6.21.3-1.el7.x86_64 需要
        net-tools 被 open-source-greenplum-db-6-6.21.3-1.el7.x86_64 需要
        perl 被 open-source-greenplum-db-6-6.21.3-1.el7.x86_64 需要
        rsync 被 open-source-greenplum-db-6-6.21.3-1.el7.x86_64 需要
        zip 被 open-source-greenplum-db-6-6.21.3-1.el7.x86_64 需要
        libevent 被 open-source-greenplum-db-6-6.21.3-1.el7.x86_64 需要

安装依赖:

yum install -y bzip2 libyaml net-tools zip rsync perl libevent

通过安装包安装后,默认安装地址为/usr/local,并授权给gpadmin用户和组

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

4、设置环境变量

echo 'source /usr/local/greenplum-db/greenplum_path.sh' >> /home/gpadmin/.bashrc

5、创建数据文件目录

mkdir /data/gpmaster
mkdir /data/gpdata1
mkdir /data/gpdata2
chown -R gpadmin:gpadmin /data

注意:以下操作切换到gpadmin用户

su gpadmin

6、创建hostlist文件

mkdir gpconfigs
echo 'Greenplum' >> gpconfigs/hostlist_singlenode

7、权限互通

让master和各节点之间能够通过ssh登录,如果是单节点部署也需要运行

gpssh-exkeys -f gpconfigs/hostlist_singlenode

可以通过如下gpssh命令验证各服务器之间的认证情况

gpssh -h Greenplum

编辑数据库初始化配置文件

cp /usr/local/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_singlenode ./gpconfigs

打开文件,并按照以下内容调整:

ARRAY_NAME="GPDB"
SEG_PREFIX=gpseg
PORT_BASE=40000
# 定义数据目录,这里定义了几个目录,每个节点上面的就会创建几个segment
declare -a DATA_DIRECTORY=(/data/gpdata1 /data/gpdata2)
MASTER_HOSTNAME=Greenplum
MASTER_PORT=5432
MASTER_DIRECTORY=/data/gpmaster
DATABASE_NAME=gpdb

8、初始化数据库

cd ~/gpconfigs
gpinitsystem -c gpinitsystem_singlenode -h hostlist

三、数据库设置

1、设置数据库时区

gpconfig -s TimeZone Asia/Shanghai
# 重启数据库
gpstop -ra

设置环境变量

Greenplum的很多命令都是需要读取环境变量中的定义的,如果未设置命令执行时会提示找不到对应的环境变量。

echo "export MASTER_DATA_DIRECTORY=/data/gpmaster/gpseg-1" >> ~/.bashrc
echo "export PGPORT=5432" >> ~/.bashrc
echo "export PGUSER=gpadmin" >> ~/.bashrc
echo "export PGDATABASE=gpdb" >> ~/.bashrc 

source ~/.bashrc

2、允许远程登录

定位到master数据文件所在目录,打开pg_hba.conf文件,并作如下修改:

TYPE  DATABASE  USER  ADDRESS    METHOD
host  all       all   0.0.0.0/0  md5

这样修改后,可以让所有的客户端通过用户名和密码登录服务,并访问所有的数据。
执行如下语句加载配置:

pg_ctl reload -s -D /data/gpmaster/gpseg-1

注意:-D 指定master节点的数据目录

3、修改密码

以下命令需要通过ssh远程登录master所在主机操作。

psql

通过下面的语句设置gpadmin的登录密码

alter role gpadmin with password 'gpadmin';

四、参考

CentOS 7.x单节点部署Greenplum 6
https://www.jianshu.com/p/c70989308081

Greenplum Database – Massively Parallel PostgreSQL for Analytics. An open-source massively parallel data platform for analytics, machine learning and AI.
https://github.com/greenplum-db/gpdb/releases

开源、多云、并行的
https://cn.greenplum.org/

ChiuYut

2022年11月04日

发布者

ChiuYut

咦?我是谁?这是什么地方? Ya ha!我是ChiuYut!这里是我的小破站!