点点滴滴,简单记录。第一次写,不足之处请多包涵
文档说明:
1.greenplum-db 5.10.2版本安装,网上有很多安装方法,本篇文档也是站在各位大牛肩膀上自己稍微整理了一下
2.文档不太美观,从word复制到简述编辑器上,格式无法完美移植。特此说明:加粗处为执行命令,斜体为配置内容
1 安装说明
名称 版本
操作系统 CentOS 6.5 64bit
greenplum greenplum-db-appliance-5.10.2-rhel6-x86_64.zip
文件系统 ext4
链接:https://pan.baidu.com/s/1M-Y_cVPjNMTTQhovddVoGg
提取码:zj58
1.2 集群说明
角色 数量 主机名 IP
Greenplum Master 1 node0 192.168.1.228
Greenplum Standby 无 无 无
Greenplum Segment 4 node1、node2、node3、node4 192.168.1.225、192.168.1.226、192.168.1.229、192.168.1.231
2 准备工作
2.1 Linux用户
各个节点需要配置免密登录
在所有节点上创建greenplum管理员用户。
groupadd -g 530 gpadmin
useradd -g 530 -u 530 -m -d /home/gpadmin -s /bin/bash gpadmin
chown -R gpadmin:gpadmin /home/gpadmin
echo "gpadmin" | passwd --stdin gpadmin
2.2 主机名和hosts配置
所有节点的/etc/hosts配置hostname并保持一致
2.3 防火墙
禁用防火墙;
vi /etc/selinux/config
SELINUX=disabled
service iptables stop
chkconfig iptables off
2.4 系统资源配置
vim /etc/sysctl.conf
kernel.shmmni = 4096
kernel.shmall = 40000000000
kernel.shmmax = 287194767360
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.tcp_tw_recycle = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.defalut.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 ###测试环境要取消这个,否则oracle启不来 ### 值为1
使资源文件生效;
sysctl -p
进程数配置;
vim /etc/security/limits.d/90-nproc.conf
* soft nproc 131072
root soft nproc unlimited
2.5 暂时启用gpadmin sudo
因为后面的集群节点上安装greenplum时会涉及到创建目录和文件操作,在此临时启用sudo,安装成功后撤销。
visudo
gpadmin ALL=(ALL) ALL
gpadmin ALL=(ALL) NOPASSWD:ALL
2.6 复制配置文件到所有节点上
scp /etc/hosts node1:/etc
scp /etc/sysctl.conf node1:/etc
scp /etc/security/limits.d/90-nproc.conf node1:/etc/security/limits.d
scp /etc/selinux/config node1:/etc/selinux
重启操作系统。
3 安装Greenplum DB
3.1 在Master节点上安装Greenplum DB
首先在master节点上安装,将greenplum-db-appliance-5.10.2-rhel6-x86_64.zip上传到/home/gpadmin目录下
5.10.2安装需要先初始化hostfile文件
cd /home/gpadmin
vim hostfile
node0
node1
node2
node3
node4
unzip greenplum-db-appliance-5.10.2-rhel6-x86_64.zip
./greenplum-db-appliance-5.10.2-rhel6-x86_64.bin
3.2 在Master节点上配置集群host
su - gpadmin
mkdir -p /usr/local/greenplum-db/conf
vim /usr/local/greenplum-db/conf/hostlist
node0
node1
node2
node3
node4
创建一个 seg_hosts ,包含所有的Segment
Host的主机名;
vim /usr/local/greenplum-db/conf/seg_hosts
node1
node2
node3
node4
3.3 配置SSH免密连接
source /usr/local/greenplum-db/greenplum_path.sh #不设置报错Error: unable to import module: No module named gppylib.commands
/usr/local/greenplum-db/bin/gpssh-exkeys -f /usr/local/greenplum-db/conf/hostlist
测试ssh node1,不需要密码即可登录。
3.4 Segment节点上安装Greenplum DB
在Master节点上远程创建Segment节点所需的目录,并更改目录权限和所有者为gpadmin;
su - gpadmin
source /usr/local/greenplum-db/greenplum_path.sh
/usr/local/greenplum-db/bin/gpssh -f /usr/local/greenplum-db/conf/seg_hosts -e -v "sudo mkdir -p /usr/local/greenplum && sudo chown gpadmin:gpadmin -R /usr/local/greenplum"
创建数据存储区域目录;
/usr/local/greenplum-db/bin/gpssh -f /usr/local/greenplum-db/conf/hostlist -e 'mkdir -p /home/gpadmin/data'
在master上创建master数据存储区域;
/usr/local/greenplum-db/bin/gpssh -h node0 -e 'mkdir -p /home/gpadmin/data/master'
在Segment节点上创建数据存储区域
/usr/local/greenplum-db/bin/gpssh -f /usr/local/greenplum-db/conf/seg_hosts -e 'mkdir -p /home/gpadmin/data/primary && mkdir -p /home/gpadmin/data/mirror'
3.5 环境变量配置
gpssh -f /usr/local/greenplum-db/conf/hostlist -e -v "cat > /home/gpadmin/.bash_profile <
source /usr/local/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/home/gpadmin/data/master/gpseg-1
export GPPORT=5432
export PGDATABASE=gp_sydb
EOF"
3.6 NTP 配置
启用master节点上的ntp,并在Segment节点上配置和启用NTP;
su - root
echo "server node0 perfer" >>/etc/ntp.conf
su – gpadmin
source /usr/local/greenplum-db/greenplum_path.sh
source /home/gpadmin/.bash_profile
/usr/local/greenplum-db/bin/gpssh -f /usr/local/greenplum-db/conf/hostlist -v -e 'sudo ntpd'
/usr/local/greenplum-db/bin/gpssh -f /usr/local/greenplum-db/conf/hostlist -v -e 'sudo /etc/init.d/ntpd start && sudo chkconfig --level 35 ntpd on'
4 初始化Greenplum DB
4.1 初始化
初始化 Greenplum 配置文件模板都在/url/local/greenplum-db/docs/cli_help/gpconfigs目录下,gpinitsystem_config是初始化Greenplum 的模板,此模板中Mirror Segment的配置都被注释;创建一个副本,对其修改;
su – gpadmin
cd /usr/local/greenplum-db/docs/cli_help/gpconfigs
cp gpinitsystem_config initgp_config
vim initgp_config
declare -a DATA_DIRECTORY=(/home/gpadmin/data/primary /home/gpadmin/data/primary /home/gpadmin/data/primary)
MASTER_HOSTNAME=node0
MASTER_DIRECTORY=/home/gpadmin/data/master
declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/data/mirror /home/gpadmin/data/mirror /home/gpadmin/data/mirror)
DATABASE_NAME=gp_sydb
MACHINE_LIST_FILE=/usr/local/greenplum-db/conf/seg_hosts
执行初始化;
gpinitsystem -c initgp_config -S
执行完后,用下面语句测试是否初始化成功
psql -d gp_sydb -c 'select a.dbid,a.content,a.role,a.port,a.hostname,b.fsname,c.fselocation from gp_segment_configuration a,pg_filespace b,pg_filespace_entry c where a.dbid=c.fsedbid and b.oid=c.fsefsoid order by content;'
若初始化失败,需要删除数据目录重新初始化;
4.2安装Oracle 兼容函数 可省略
psql -d gp_sydb -f /usr/local/greenplum-db/share/postgresql/contrib/orafunc.sql
4.3安装thinkphp兼容函数
跳过
5 附加项
5.1增加standby
在standby服务器上执行
mdir –p home/gpadmin/data/master
chown gpadmin:gpadmin home/gpadmin/data/master
在master服务器上执行
gpinitstandby -s standby 服务器的节点
5.2 增加mirror
su –gpadmin
gpaddmirrors -p 100
5.3增加节点
5.3.1准备工作
链接:https://pan.baidu.com/s/1kR3Bil7eK8IxNyAlqIX9nA
提取码:lvyp
参考2准备工作
新节点配置与主节点同步
5.3.2 修改配置文件
主节点执行
su - gpadmin
cd /usr/local/greenplum-db/conf
vim hostlist #将新增节点加到文件最后
node0
node1
node2
node3
node4
node5
vim host_expand #将新增节点加入到文件中
ndoe5
#主节点打包
cd /usr/local
tar -czvf GP-5.10.2.tar.gz GP-5.10.2/
#将压缩包传到新的服务器上
scp GP-5.10.2.tar.gz root@node5:/usr/local
#新节点登录
cd /usr/local
tar -zxvf GP-5.10.2.tar.gz
ln -fs GP-5.10.2 greenplum-db
chown -R gpadmin:gpadmin /usr/local/GP-5.10.2
chown -R gpadmin:gpadmin /usr/local/greenplum-db
5.3.3配置ssh免密登录
source /usr/local/greenplum-db/greenplum_path.sh #不设置报错Error: unable to import module: No module named gppylib.commands
/usr/local/greenplum-db/bin/gpssh-exkeys -f /usr/local/greenplum-db/conf/hostlist
5.3.4创建gp目录
/usr/local/greenplum-db/bin/gpssh -f /usr/local/greenplum-db/conf/host_expand -e -v "sudo mkdir -p /usr/local/greenplum && sudo chown gpadmin:gpadmin -R /usr/local/greenplum"
/usr/local/greenplum-db/bin/gpssh -f /usr/local/greenplum-db/conf/host_expand -e 'mkdir -p /home/gpadmin/data'
/usr/local/greenplum-db/bin/gpssh -f /usr/local/greenplum-db/conf/host_expand -e 'mkdir -p /home/gpadmin/data/primary && mkdir -p /home/gpadmin/data/mirror'
5.3.5 配置环境变量
gpssh -f /usr/local/greenplum-db/conf/host_expand -e -v "cat > /home/gpadmin/.bash_profile <
source /usr/local/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/home/gpadmin/data/master/gpseg-1
export GPPORT=5432
export PGDATABASE=gp_sydb
EOF"
5.3.6NTP配置
su – gpadmin
source /usr/local/greenplum-db/greenplum_path.sh
source /home/gpadmin/.bash_profile
/usr/local/greenplum-db/bin/gpssh -f /usr/local/greenplum-db/conf/hostlist -v -e 'sudo ntpd'
/usr/local/greenplum-db/bin/gpssh -f /usr/local/greenplum-db/conf/hostlist -v -e 'sudo /etc/init.d/ntpd start && sudo chkconfig --level 35 ntpd on'
5.3.7初始化新扩展
#主节点执行
su - gpadmin
source /home/gpadmin/.bash_profile
gpexpand -f /usr/local/greenplum-db/conf/host_expand
gpexpand -i gpexpand_inputfile_xx -D idap3
6 gpfdist
主节点执行
mkdir -p /home/gpadmin/gpload/data
mkdir -p /home/gpadmin/gpload/yml
chown gpadmin:gpadmin /home/gpadmin/gpload/data
chown gpadmin:gpadmin /home/gpadmin/gpload/yml
su -gpadmin
gpfdist -d /home/gpadmin/gpload/data -p 54321 -l /home/gpadmin/gpload/gpfdist.log &
7 远程登录
echo host all gpadmin 192.0.0.0/8 trust >> /home/gpadmin/data/master/gpseg-1/pg_hba.conf
su - gpadmin
gpconfig -c optimizer -v off 没有分区表优先使用该配置
gpconfig -c optimizer -v on 有分区表使用该配置
gpconfig -c shared_buffers -v 20GB
gpconfig -c effective_cache_size -v 64GB
gpconfig -c work_mem -v 6GB
gpconfig -c max_connections -v 1500 -m 1000
gpstop -a -r -M fast
8 卸载5.10.2
文件删除
主节点
rm -rf /home/gpadmin/data/master/*
rm -rf /home/gpadmin/data/mirror/*
rm -rf /home/gpadmin/data/primary/*
rm -rf /usr/local/GP-5.10.2
rm -rf /usr/local/greenplum-db
其他节点
rm -rf /home/gpadmin/data/mirror/*
rm -rf /home/gpadmin/data/primary/*
rm -rf /usr/local/GP-5.10.2
rm -rf /usr/local/greenplum-db