环境准备
- Centos 7.3
- Greenplum Database 6.7.1 Installer for RHEL 7
安装环境说明
单节点部署时,主机上部署一个master
节点和两个segment
。
服务器地址
主机IP地址 | 主机名称 | |
---|---|---|
128.1.1.2 | dcmaster | master |
相关路径
- 数据文件路径:
/data
- master文件路径:
/data/gpmaster
- segment文件路径:
/data/gpdata1
和/data/gpdata2
- 配置文件路径:
/home/gpadmin/gpconfigs
- 数据库管理员:
gpadmin
- 默认数据库名称:
gpdb
注意:以下操作均在root用户下操作,否则命令前增加sudo。
- 关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service # 禁用开机启动
- 关闭SELINUX
vim /etc/selinux/config
改为:SELINUX=disabled
可以通过
getenforce
命令检查,返回Disabled
。
或者可以直接通过命令修改
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
- 修改机器名
hostnamectl set-hostname dcmaster
- 修改host
vim /etc/hosts
增加以下内容:
128.1.1.2 dcmaster
- 配置内核
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
- 创建组和用户
groupadd gpadmin
useradd gpadmin -g gpadmin -d /home/gpdata
passwd gpadmin
- 重启服务器
reboot
安装Greenplum数据库
注意:Greenplum Database Server的安装文件有2个版本,分别在Github的release页面和Vmware Tanzu Network都可以下载,但是下回来的文件是不一样的。从Github上下回来的是Greenplum Database Open Source版本(文件大小比较小),另外一个是Pivotal Greenplum Database distribution版本(文件大小比较大),我们应该从Vmware Tanzu Network上下载并安装。否则在安装Pivotal Greenplum Command Center的时候会提示MetricsCollector无法启动。
注意:以下操作均在root用户下操作,否则命令前增加sudo。
- 安装必要组件
yum install apr apr-util krb5-devel
- 通过安装包安装Greenplum
chmod +x greenplum-db-6.6.0-rhel7-x86_64.rpm
rpm -Uvh greenplum-db-6.6.0-rhel7-x86_64.rpm
通过安装包安装后,默认安装地址为/usr/local
,并授权给gpadmin
用户和组。
chown -R gpadmin:gpadmin /usr/local/greenplum*
- 设置环境变量
echo 'source /usr/local/greenplum-db/greenplum_path.sh' >> /home/gpadmin/.bashrc
- 创建数据文件目录
mkdir /data/gpmaster
mkdir /data/gpdata1
mkdir /data/gpdata2
chown -R gpadmin:gpadmin /data
注意:以下操作切换到
gpadmin
用户su gpadmin
- 创建hostlist文件
mkdir gpconfigs
echo 'dcmaster' >> gpconfigs/hostlist_singlenode
- 权限互通,让master和各节点之间能够通过ssh登录,如果是单节点部署也需要运行
gpssh-exkeys -f gpconfigs/hostlist_singlenode
gpssh-exkeys执行结果
可以通过如下gpssh
命令验证各服务器之间的认证情况
gpssh -h dcmaster
gpssh验证结果
- 编辑数据库初始化配置文件
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=dcadmin
MASTER_PORT=5432
MASTER_DIRECTORY=/data/gpmaster
DATABASE_NAME=gpdb
- 初始化数据库
cd ~/gpconfigs
gpinitsystem -c gpinitsystem_singlenode -h hostlist
数据库初始化完成
数据库设置
- 设置数据库时区
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
- 使数据服务可以远程登录
定位到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节点的数据目录
- 修改用户登录数据库密码
以下命令需要通过ssh远程登录master所在主机操作。
psql
通过下面的语句设置gpadmin
的登录密码
alter role gpadmin with password 'gpadmin';