此文详细记载了本人学习安装greenplum集群每一步的详细细节,适用于初学者学习。按步骤走完每一步后,用navicat能连接到及安装成功。分享出来望能与大家共同学习,有不足或错误之处还望指正。
本人安装虚拟机用的是VMware,远程连接虚拟机用的是Xshell。文章主要讲述虚拟机集群的步骤。
Green plum5.10.0
Linux系统版本centos7
安装系统步骤略。
(VM装机,固定虚拟机ip。本文主要讲述greenplum集群,这两部就不做赘述,不会的可以自行百度)
固定ip可以参考此文:https://blog.csdn.net/qq_42778289/article/details/101286328
<1> 三台虚拟机(一台master,两台节点)
<2> 固定ip本机可以ping通虚拟机,并使用Xshell连接
查看状态:sestatus
禁止:vim /etc/selinux/config,编辑内容:SELINUX=disabled
vim /etc/sysctl.conf
kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000
kernel.sem = 500 1024000 200 4096
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
vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
vim /etc/security/limits.d/20-nproc.conf
* soft nproc 4096
root soft nproc unlimited
gpadmin soft nproc unlimited
1、查看预读量:blockdev --getra /dev/devname //devname指磁盘名,例sd*
2、设置预读量:blockdev --setra 16384 /dev/devname
将命令写入文件并给执行权限chmod +x /etc/rc.d/rc.local //启动执行
1、 修改调度:echo deadline> /sys/block/devname/queue/scheduler
//devname指数据磁盘,根据实际情况指定
2、 指定调度程序:grubby --update-kernel=ALL --args=“elevator=deadline”
添加参数后,重启系统。查看内核参数设置:grubby --info=ALL
3、禁用THP:grubby --update-kernel=ALL --args=“transparent_hugepage=never”
添加参数后,重启系统。检查THP状态:
cat /sys/kernel/mm/*transparent_hugepage/enabled
1、 修改挂载文件信息:vim /etc/fstab,xfs是Linux上数据存储的首选文件系统。
将xfs后的default替换为内容:nodev,noatime,nobarrier,inode
1、 设置参数:vim /etc/systemd/logind.conf
RemoveIPC=no
2、 重启服务:service system-logind restart
1、修改/etc/sshd_config或者/etc/ssh/sshd_config
MaxStartups=200 //根据实际情况修改
2、 重启服务:service sshd restart
1、 所有机器
systemctl start ntpd
systemctl enable ntpd
2、 master主机
vim /etc/ntp.conf
server参数指向数据中心的NTP时间服务器,例如:server 192.168.9.1
3、 备份机器
server mdw prefer
server 192.168.9.1
4、 数据节点
server mdw prefer
server mdw-s
1、Master主机命名,输入命令:hostnamectl set-hostname,输入主机名:mdw。
依次在数据节点执行命令,输入新的主机名:sdw1、sdw2……
2、重新连接后生效。
1、 关闭防火墙:systemctl stop firewalld.service
2、 禁止开机开启:systemctl disabled firewalld.service
vim /etc/hosts
192.168.9.18 mdw
192.168.9.19 mdw-s
192.168.9.145 sdw1
192.168.9.144 sdw2
192.168.9.143 sdw3
[root@mdw ~]# groupadd -g 530 gpadmin
[root@mdw ~]# useradd -g 530 -u530 -m -d /home/gpadmin -s /bin/bash gpadmin
[root@mdw ~]# passwd gpadmin
Changing password for user gpadmin.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
1、创建安装文件目录(每台机器都需要)
mkdir /data/greenplum
chown -R gpadmin:gpadmin /data/greenplum
2、下载安装包
官网地址: https://network.pivotal.io/products/pivotal-gpdb
注意:下载安装包之前,需要在官网注册账号,方可下载。
3、上传Greenplum的安装文件greenplum-db-5.10.0-rhel7-x86_64.zip并解压缩,该步骤在master上执行。
unzip ./ greenplum-db-5.10.0-rhel7-x86_64.zip
4、在root用户下,将下载的文件放在CentOS系统中自己能找到的位置即可,给该文件赋予可执行权限,之后执行该文件,即开始安装,该步骤在master上执行。
chmod +x greenplum-db-5.10.0-rhel7-x86_64.bin
./ greenplum-db-5.10.0-rhel7-x86_64.bin
5、期间需要修改默认安装目录,输入 /data/greenplum/greenplum-db-5.10.0之后即可安装成功,此时master上的Greenplum安装成功了。但是之前我们都是以root身份安装的,所以要将安装目录下的文件的所有者,都修改为gpadmin。
chown -R gpadmin:gpadmin /data/greenplum
因为只在master上安装了Greenplum,所以接下来要将安装包批量发送到每个segment上,才能算是整个集群完整安装了Greenplum。后面的操作都是为了连接所有节点,并将安装包发送到每个节点。
1、 创建所有节点的配置文件
[root@gpm ~]# su gpadmin
[gpadmin@gpm ~]# cd /data/greenplum
[gpadmin@gpm greemplum]# mkdir conf
[gpadmin@gpm greemplum]# cd conf
[gpadmin@gpm conf]# vim hostlist
mdw
mdw-s
sdw1
sdw2
sdw3
2、 创建所有数据节点的配置文件
[gpadmin@gpm conf]# vim seg_hosts
sdw1
sdw2
sdw3
greenplum_path.sh中保存了运行Greenplum的一些环境变量设置,包括GPHOOME、PYTHONHOME等设置。
注意执行gpssh-exkeys 命令时需要使用gpadmin账户。
[gpadmin@gpm ~]$ source /data/greenplum/greenplum-db/greenplum_path.sh
[gpadmin@gpm ~]$ gpssh-exkeys -f /data/gpadmin/conf/hostlist
[STEP 1 of 5] create local ID and authorize on local host
... /home/gpadmin/.ssh/id_rsa file exists ... key generation skipped
[STEP 2 of 5] keyscan all hosts and update known_hosts file
[STEP 3 of 5] authorize current user on remote hosts
... send to sdw1
... send to sdw2
... send to sdw3
[STEP 4 of 5] determine common authentication file content
[STEP 5 of 5] copy authentication files to all remote hosts
... finished key exchange with sdw1
... finished key exchange with sdw2
... finished key exchange with sdw3
[INFO] completed successfully
<1> 首次执行gpssh-exkeys命令时,在[STEP 3 of 5],要输入每个segment节点的gpadmin用户的密码。
<2> gpssh-exkeys命令使用的时候一定要用gpadmin身份,因为这个命令会生成ssh的免密码登录的秘钥,在/home/gpadmin/.ssh这里。如果以root身份使用gpssh-exkeys命令,那么生成的.ssh秘钥在root的home下面或者是在/home/gpadmin下面但是是root的所
有者,如果之后使用gpadmin身份执行相应操作的时候就没有权限。
<3> 如果你是以root安装的将已安装文件的所有权和组更改为gpadmin:
chown -R gpadmin /usr/local/greenplum*
chown -R gpadmin /usr/local/greenplum*
1、拷贝master节点公钥至各节点:gpssh-exkeys -f /data/Greenplum/conf/hostlist
2、无密码登录安装:gpseginstall -f /data/Greenplum/conf/hostlist
1、在mdw上创建gpmaster目录
cd /data/greenplum/gpdata
mkdir gpmaster
2、在每一个数据节点中创建数据目录
[gpadmin@gpm conf]$ gpssh -f seg_hosts
=> cd /gpdata/disk1
[sdw1]
[sdw2]
[sdw3]
=> mkdir primary mirror
[sdw1]
[sdw2]
[sdw3]
=> cd /gpdata/disk2
[sdw1]
[sdw2]
[sdw3]
=> mkdir primary mirror
[sdw1]
[sdw2]
[sdw3]
=> cd /gpdata/disk3
[s0]
[s1]
[s2]
=> mkdir primary mirror
[s0]
[s1]
[s2]
=> cd /gpdata/disk4
[s0]
[s1]
[s2]
=> mkdir primary mirror
[s0]
[s1]
[s2]
……
一直将8个数据目录创建完毕,本次安装每台数据节点中有八个primary segment和八个mirror segment。
创建数据目录完毕后,将gpdata目录的权限赋给gpadmin(所有机器)
chown -R gpadmin:gpadmin /gpdata
[gpadmin@gpm ~]$ vi ~/.bash_profile
source /data/greenplum/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/greenplum/gpdata/gpmaster/gpseg-1
export PGPORT=5432
export PGDATABASE=testDB
[gpadmin@mdw ~]$ source ~/.bash_profile(让环境变量生效)
vim /data/greenplum/ gpinitsystem_config
ARRAY_NAME="Greenplum Data Platform"
SEG_PREFIX=gpseg
PORT_BASE=40000
declare -a DATA_DIRECTORY=(/gpdata/disk1/primary /gpdata/disk2/primary /gpdata/disk3/primary /gpdata/disk4/primary /gpdata/disk5/primary /gpdata/disk6/primary /gpdata/disk7/primary /gpdata/disk8/primary)
MASTER_HOSTNAME=gpm
MASTER_DIRECTORY=/data/greenplum/gpdata/gpmaster
MASTER_PORT=5432
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UTF8
MIRROR_PORT_BASE=50000
REPLICATION_PORT_BASE=41000
MIRROR_REPLICATION_PORT_BASE=51000
declare -a MIRROR_DATA_DIRECTORY=(/gpdata/disk1/mirror /gpdata/disk2/mirror /gpdata/disk3/mirror /gpdata/disk4/mirror /gpdata/disk5/mirror /gpdata/disk6/mirror /gpdata/disk7/mirror /gpdata/disk8/mirror)
DATABASE_NAME=GP
MACHINE_LIST_FILE=/data/greenplum/conf/seg_hosts
[gpadmin@mdw ~]$ gpinitsystem -c /data/gpadmin/conf/gpinitsystem_config
该命令是通过配置文件对整个greenplum集群,并在每个数据节点创建8个primary segment 实例和8个mirror segment实例。
注意:经常这一步骤会卡很长时间,如果报错查看日志。
gpstate
gpstate -s
gpstart 启动gp集群
gpstate -m 启动主节点
gpstop 关闭gp集群
gpstop -u 重新读取配置文件
gpstop -M fast 快速关闭greenplum集群,不管当前是否有连接