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日