greenplum安装文档

安装

1 安装环境及版本

主机系统 CentOs7.5
Greenplum版本 4.3.99
主机ip

10.77.100.121
10.77.100.122
10.77.100.123

其中10.77.100.121为master,其余为segment

2 安装准备工作

2.1 修改hosts(所有机器)

vim /etc/hosts #添加如下内容

10.77.100.121 dw-greenplum-1 mdw
10.77.100.122 dw-greenplum-2 sdw1
10.77.100.123 dw-greenplum-3 sdw2

vim /etc/sysconfig/network #修改如下

NETWORKING=yes
HOSTNAME=dw-greenplum-1 #其他的机子将 -1 改为 -2 -3 ...

注意: 修改了/etc/sysconfig/network文件之后,需要将/home/gpadmin/.gphostcache删除掉,因为如果在修改network文件之前执行过gpssh-exkeys,可能会在gphostcache文件中生成主机名和hostlist配置中的名字形成对应关系,而greenplum之后不会再修改这个文件。

2.2 修改系统内核配置(所有机器)

vim /etc/sysctl.conf #添加如下内容

kernel.shmall = 4294967296
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.ip_forward = 0
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 = 1025 65535
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.overcommit_memory = 2

使/etc/sysctl.conf配置生效

sysctl -p

修改文件打开限制
vim /etc/security/limits.conf #添加如下内容

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

关闭SELINUX安全设置
vim /etc/selinux/config #修改如下

SELINUX=disabled

2.3 关闭防火墙(所有机器)

systemctl stop firewalld.service  #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

2.4 创建用户和用户组(所有机器)

groupadd -g 530 gpadmin
useradd -g 530 -u530 -m -d /home/gpadmin -s /bin/bash gpadmin

若要修改密码 #passwd gpadmin

3 安装与分发

3.1 联网安装必要的包 (所有机器)

yum -y install rsync coreutils glib2 lrzsz sysstat e4fsprogs xfsprogs ntp readline-devel zlib zlib-devel openssl openssl-devel pam-devel libxml2-devel libxslt-devel python-devel tcl-devel gcc make smartmontools flex bison perl perl-devel perl-ExtUtils* OpenIPMI-tools openldap openldap-devel logrotate gcc-c++ python-py net-tools
yum -y install bzip2-devel libevent-devel apr-devel curl-devel ed python-paramiko python-devel
yum -y install wget
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
pip install lockfile paramiko setuptools epydoc psutil
pip install psi
pip install --upgrade setuptools

3.2 将源码zip包放置在/home/gpadmin,并修改所有者

chown gpadmin.gpadmin /home/gpadmin/gpdb.zip #源码包

3.3 切换用户

su - gpadmin

3.4 解压代码

unzip gpdb.zip #源码包

3.5 创建目录

mkdir /home/gpadmin/gpdb

3.6 进入源码目录,编译安装

cd gpdb-master #刚解压的源码目录
./configure --prefix=/home/gpadmin/gpdb  #debug选项 --enable-debug --enable-testutils --enable-debugbreak 
#debug选项 修改 src/Makefile.global里的CFLAGS和CXXFLAGS 选项-O3 为 -O0
make    #注意,如果缺少某些库和工具之类的,则需要在所有的节点上安装
make install

3.7 分发

因为只在 master 上安装了Greenplum,所以下面要将安装包批量发送到每个 slave 机器上,才能算是整个Greenplum 集群完整安装了Greenplum。当然你也可以在所有机器上重复configure和make。
3.7.1 在master主节点上创建安装GP的tar文件,其中gpdb是安装路径

gtar -cvf /home/gpadmin/gp.tar gpdb

3.7.2 创建conf目录

mkdir ~/conf

3.7.3 创建hostlist和seg_hosts
vim conf/hostlist #添加如下

mdw
sdw1
sdw2

vim conf/seg_hosts #添加如下

sdw1
sdw2

3.7.4 交换秘钥

source /home/gpadmin/gpdb/greenplum_path.sh    #是Greenplum环境生效
gpssh-exkeys -f /home/gpadmin/conf/hostlist

3.7.5 发送gp.tar至其他node

gpscp -f /home/gpadmin/conf/seg_hosts /home/gpadmin/gp.tar =:/home/gpadmin

3.7.6 连接各个节点,解压gp.tar,创建数据库数据保存目录

gpssh -f /home/gpadmin/conf/hostlist    #连接所有节点
cd /home/gpadmin
gtar -xvf gp.tar
mkdir gpdata
cd gpdata
mkdir gpdatap1 gpdatam1 gpmaster
exit

4 初始化和创建数据库

4.1 配置环境变量(所有机器)
vim ~/.bashrc #也可以是其他配置文件,添加如下

# greenplum env
source /home/gpadmin/gpdb/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/home/gpadmin/gpdata/gpmaster/gpseg-1/

若还要配置其他参数参见postgresql

source ~/.bashrc    #使配置文件生效

4.2 编辑gp配置文件
cp ~/gpdb/docs/cli_help/gpconfigs/gpinitsystem_config ~/conf
vim ~/conf/gpinitsystem_config #配置如下

ARRAY_NAME="Greenplum"
SEG_PREFIX=gpseg
PORT_BASE=40000
declare -a DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatap1)
MASTER_HOSTNAME=mdw
MASTER_DIRECTORY=/home/gpadmin/gpdata/gpmaster
##### Port number for the master instance.
MASTER_PORT=2345
# #### Shell utility used to connect to remote hosts.
TRUSTED_SHELL=/usr/bin/ssh
##### Maximum log file segments between automatic WAL checkpoints.
CHECK_POINT_SEGMENTS=8
ENCODING=UNICODE
MIRROR_PORT_BASE=50000
REPLICATION_PORT_BASE=41000
MIRROR_REPLICATION_PORT_BASE=51000
declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatam1)
MACHINE_LIST_FILE=/home/gpadmin/conf/seg_hosts
#注意,若要在mdw上实例化segment,则MACHINE_LIST_FILE=/home/gpadmin/conf/hostlist 

4.3 初始化

gpinitsystem -c /home/gpadmin/conf/gpinitsystem_config –a
#gpinitsystem -c /home/gpadmin/conf/gpinitsystem_config -s sdw1 -a #配置standby命令

4.4 启动/关闭数据库

gpstart/gpstop

4.5 进入数据库

psql -d postgres -p 2345

进入segment

PGOPTIONS='-c gp_session_role=utility' psql -d postgres -p 40000

补充

安装gpadmin-5.7的时候发现还有些依赖项需要安装

ERROR

  • error1
git: command not found
  • solution1
yum -y install git
  • error2
autoreconf: command not found
  • solution2
yum -y install autoconf
  • error3
Can't exec "aclocal": No such file or directory
  • solution3
yum -y install automake // aclocal是automake包的一部分
  • error4
./configure时报如下错误
checking Checking ORCA version... configure: error: Your ORCA version is expected to be 2.55.XXX
  • solution4
1 确认安装版本号
2 版本号正确情况下
vim ~/.bashrc
export LD_LIBRARY_PATH=/usr/local/lib
source ~/.bashrc
// 原因在于,gporca默认安装在了/usr/local/lib下,而安装者又没有引入这个库,导致./configure时报错
  • error5: gpssh-exkeys -f /home/gpadmin/conf/hostlist
[ERROR] unable to copy authentication files to sdw2
     lost connection
  • solution5
删除 .ssh目录
重新执行  gpssh-exkeys -f /home/gpadmin/conf/hostlist

参考链接

Greenplum 源码安装教程 —— 以 CentOS 平台为例
CentOS 7下Greenplum 源码安装教程
CMake Error: CMake was unable to find a build program corresponding to "Ninja".
Linux有问必答:如何修复“运行aclocal失败:没有该文件或目录”

上一篇:带你读《6G重塑世界》第二章5G 加速社会的数字化转型2.2 5G 的全新能力(二)


下一篇:《Servlet和JSP学习指南》一第1章 Servlet 1.1 Servlet API概述