环境:centos7,greenPlum6.0
安装包及依赖包下载:https://pan.baidu.com/s/1vUBcSjEb1WZCOhPL5zZhgA
提取码:u9th
1、安装环境准备 (所有安装节点)
1.1关闭selinux
vim /etc/selinux/config
修改SELINUX=disabled
1.2关闭防火墙
查看防火墙服务状态
systemctl status firewalld.service
如果已关闭,就不执行以下命令 :
systemctl stop firewalld.service #停止防火墙
systemctl disable firewalld.service #禁用防火墙
注:若不能关闭防火墙,则将所有安装节点的防火墙相互开放。
1.3修改主机名
hostnamectl set-hostname gp01
1.4修改/etc/hosts文件
vim /etc/hosts
10.36.30.251 gp01
10.36.30.252 gp02
10.36.30.253 gp03
2、操作系统参数设置 (所有安装节点)
2.1 sysctl.conf修改
vim /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 1
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.sem = 25064000100512
kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_max_syn_backlog=4096
net.core.netdev_max_backlog=10000
vm.overcommit_memory=2
net.ipv4.conf.all.arp_filter = 1
修改完成后保存文件,并使用sysctl -p使配置生效
2.2 limits.conf 修改
vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
2.3 磁盘预读参数及 deadline算法修改
执行以下2条命令:
blockdev --setra 65536 /dev/sda
echo deadline > /sys/block/sda/queue/scheduler
3.配置ssh免密登录
3.1 创建用户及用户组(所有安装节点)
创建用户gpadmin
以及用户组,并设置gpadmin
密码
groupadd gpadmin
useradd gpadmin -r -m -g gpadmin
passwd gpadmin
3.2 配置免密登录(master服务器)
1、切换到gpadmin
用户:
su gpadmin
2、进入到用户的~/.ssh
目录下:
cd ~/.ssh
3、执行下面命令后按四个回车键:
ssh-keygen -t rsa
4、再利用ssh-copy-id
命令把生成的公钥copy到需要免密登陆其他的服务节点上
ssh-copy-id 10.36.30.252
ssh-copy-id 10.36.30.253
根据提示,输入对应密码后就可以使用ssh进行免密登陆了。
5、若ssh免密登录失败,可能是文件夹或用户权限问题,在登录失败的服务器执行:
chmod 700 ~/.ssh/
chmod 700 /home/gpadmin
chmod 600 ~/.ssh/authorized_keys
4 安装greenPlum数据库
- 以下操作,若无切换用户提示,均在gpadmin用户下执行
4.1数据库安装(所有安装节点)
1、普通用户无yum权限,先切换到root用户下,将GP安装包分发到所有服务器的/opt/ 目录下,并在目录下执行rpm命令进行安装:
rpm -ivh /opt/greenplum-db-6.1.0-rhel7-x86_64.rpm
注:
1、安装时,根据提示先将缺失的所需依赖安装完毕,才可以进行GP数据库的安装。
2、若出现pkgconfig(XX) is needed by XXX.rpm,则在rpm –ivh xxx.rpm 命令后增加 --force --nodeps,进行不检查依赖安装强制安装。
例如:
rpm -ivh mysql-community-devel-8.0.17-1.el7.x86_64.rpm --force --nodeps
2、更改GP数据库目录拥有者为gpadmin用户:
chown -R gpadmin:gpadmin /usr/local/greenplum*
4.2数据库配置
1、在master机器上执行
su gpadmin
vim ~/.bashrc
文末添加:
source /usr/local/greenplum-db/greenplum_path.sh
export PGPORT=5432
export PGUSER=gpadmin
export MASTER_DATA_DIRECTORY=/gpdata/master/gpseg-1
export PGDATABASE=default_ database
export LD_PRELOAD=/lib64/libz.so.1 ps
2、在所有子节点机器上执行
vim ~/.bashrc
文末添加:
source /usr/local/greenplum-db/greenplum_path.sh
3、在master服务器上创建hostfile_exkeys文件和hostfile_segonly文件:
cd ~
vim hostfile_exkeys
输入:
gp01
gp02
gp03
vim hostfile_segonly
输入:
gp02
gp03
4、在master机器上创建数据目录:
mkdir -p /gpdata/master
5、初始化配置文件,在master机器上执行:
cd /home/gpadmin
mkdir gpconfigs
复制gpinitsystem_config 文件:
cp /usr/local/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/gpconfigs/gpinitsystem_config
修改/home/gpadmin/gpconfigs/gpinitsystem_config文件,如下:
#segment前缀
SEG_PREFIX=gpseg
#primary segment 起始的端口号
PORT_BASE=6000
#指定primary segment的数据目录,网上写的是多个相同目录,多个目录表示一台机器有多个segment
declare -a DATA_DIRECTORY=(/gpdata/pdata1)
#master机器的hostname
MASTER_HOSTNAME=gp01
#master的数据目录
MASTER_DIRECTORY=/gpdata/master
#master端口号
MASTER_PORT=5432
#指定bash的版本
TRUSTED_SHELL=ssh
#将日志写入磁盘的间隔,每个段文件通常 =16MB < 2 * CHECK_POINT_SEGMENTS + 1
CHECK_POINT_SEGMENTS=8
#mirror segment 起始的端口号
MIRROR_PORT_BASE=7000
#mirror的数据目录,和主数据一样,一个对一个,多个对多个
declare -a MIRROR_DATA_DIRECTORY=(/gpdata/mdata1)
DATABASE_NAME=default_database
6、在3台主机上创建目录:
mkdir -p /gpdata/pdata1
mkdir /gpdata/mdata1
7、master机器上,执行初始化数据库命令:
cd ~
gpinitsystem -c gpconfigs/gpinitsystem_config -h hostfile_segonly
4.3 数据库基本操作
1、启动数据库
gpstart
2、重启
gpstop –r
3、仅重新载入配置文件的更改
gpstop –u
4、停止数据库
gpstop
5、创建数据库
createdb test_database -E utf-8
6、创建用户
create role test password 'test' login;
7、退出数据库
\q
8、允许所有用户远程登录(master服务器执行)
vim /gpdata/master/gpseg-1/pg_hba.conf
文末添加:
host all all 0.0.0.0/0 md5
执行以下命令,使配置生效:
gpstop –u