1、说明
这里使用1个master,2个segment的集群,ip为
196.168.0.10
196.168.0.11
196.168.0.10
系统:Centos7+
其中196.168.0.10为master,其余为segment。
各服务器地址配置:
先查看目前用的网卡名字
编辑网卡信息 vi /etc/sysconfig/network-scripts/ifcfg-eno1677984
以下为主要修改信息
ONBOOT=yes
IPADDR=本地IP地址
PREFIX=子网掩码
GATEWAY=网关地址
DNS1=DNS地址
配置完成后,用service network restart命令重启网络
2、环境准备工作:
以下这些包都是需要提前安装,特别是ed.rpm包
yum -y install epel-release
yum install –y git.x86_64
yum install –y gcc.x86_64 gcc-c++.x86_64
yum install –y ccache
yum install –y ed(ed包非常重要,数据库初始化的时候如果没有安装这个包的话,会报错,数据库命令无法执行)
yum install -y readline.x86_64 readline-devel.x86_64
yum install -y bison.x86_64 bison-devel.x86_64
yum install -y flex.x86_64 flex-devel.x86_64
yum install -y zlib.x86_64 zlib-devel.x86_64
yum install -y openssl.x86_64 openssl-devel.x86_64
yum install -y pam.x86_64 pam-devel.x86_64
yum install –y libcurl.x86_64 libcurl-devel.x86_64
yum install -y bzip2-libs.x86_64 bzip2.x86_64 bzip2-devel.x86_64
yum install -y libssh2.x86_64 libssh2-devel.x86_64
yum install -y python-devel.x86_64
yum install -y python-pip
yum install -y netstat-tools(netstat 命令必须也要有,否则查询GP端口状态时无法查询到)
1)修改主机名:
(Centos7之前命令)
[root@gpm ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=gp
(Centos7之后命令)
[root@gpm ~]# vi /etc/hostname
gp
主节点gpmaster,备用主节点standby,其余节点gpseg1,gpseg2…..以此类推
2)修改/etc/hosts文件
修改完各主机名后,hosts文件需要进行配置,主要是为了不输入ip的方式互通。
[root@gpm ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
##以下是新增信息
192.168.0.10 gp
192.168.0.11 gpdata1
192.168.0.12 gpdata2
(主机ip地址 主机名 )
这里的主机ip地址和主机名一定要与其他机器的主机名和ip地址对应,最终可以使用ping命令测试是否配置好了:
[root@gpm ~]# ping gp
PING gp(192.168.0.10) 56(84) bytes of data.
64 bytes from sdw1 (192.168.0.10): icmp_seq=1 ttl=64 time=1.14 ms
64 bytes from sdw1 (192.168.0.10): icmp_seq=2 ttl=64 time=0.726 ms
64 bytes from sdw1 (192.168.0.10): icmp_seq=3 ttl=64 time=0.714 ms
[root@gp~]# ping gpdata1
PING gpdata1(192.168.0.11) 56(84) bytes of data. .
64 bytes from sdw2 (192.168.0.11): icmp_seq=1 ttl=64 time=0.940 ms
[root@gp~]# ping gpdata2
PING gpdata2(192.168.0.12) 56(84) bytes of data.
64 bytes from sdw3 (192.168.0.12): icmp_seq=1 ttl=64 time=1.62 ms
64 bytes from sdw3 (192.168.0.12): icmp_seq=2 ttl=64 time=0.669 ms
一定要使用主机名来测试,使用ip地址测试无效。
3)修改系统内核
[root@gpm ~]# vi /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.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
[root@dw-greenplum-1~]# sysctl -p(让配置生效)
注意每台机器都要修改,不然就会初始化不成功
4)修改文件打开限制(每台机器都要修改):
[root@gpm ~]# vi /etc/security/limits.conf
# End of file
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
在这个文件文末添加上面四行就可以了。
5)关闭防火墙(每台机器都要)
[root@gpm selinux]# vim /etc/selinux/config
即SELINUX=disabled
centos7,关闭防火墙命令
[root@gpm ~]systemctl stop firewalld.service #停止firewall
[root@gpm ~]systemctl disable firewalld.service #禁止firewall开机启动
Centos6关闭防火墙命令
[root@gpm ~]chkconfig iptables off
6)创建用户和用户组
[root@mdw ~]# useradd gpadmin
[root@mdw ~]# passwd gpadmin
Changing password for user gpadmin.
New password:输入密码
Retype new password:确认密码
passwd: all authentication tokens updated successfully.
好了现在准备工作已经做好了,可以开始安装Greenplum了
注:greenplum4+版本默认安装目录在/usr/local/目录下
1)下载安装包
https://network.pivotal.io/products/pivotal-gpdb#/releases/1683
2)创建配置文件
[root@gpm ~]$vim /home/gpadmin/conf/hostlist
gpm
gpdata1
gpdata2
[root@gpm ~]$vim /home/gpadmin/conf/seg_hosts
gpdata1
gpdata2
按照上面的文件内容创建hostlist和seg_hosts文件,greenplum4+版本在安装时会用到hostlist文件。
这里文件中的gp、pgdata1、gpdata2即为之前在/etc/hosts文件中配置的最后一个参数
3)打通所有节点
greenplum_path.sh中保存了运行Greenplum的一些环境变量设置,包括GPHOOME、PYTHONHOME等设置
[gpadmin@gpm ~]$ source /usr/local/greenplum-db/greenplum_path.sh
[gpadmin@gpm ~]$ gpssh-exkeys -f /home/gpadmin/hostlist
这一步gpssh-exkeys文件中有很多命令不一定能执行成功,需要自行排查处理。也可以手工做互信。
手工做免密
先用ssh-keygen生成公私钥,然后用ssh-copy-id分发密钥到各个节点.
root用户和gpadmin用户都需要做免密,
GreenPlum做免密,只需要master和各数据节点做免密,数据节点之间不需要做免密。
在安装GP之前,将免密做完,在安装GP时可以自动将包分发到各个节点.否则只能手动分发
4)master上安装Greenplum(只需master主节点即可,root用户执行)
将下载的文件放在CenOS系统中自己能找到的位置即可,给该文件赋予执行权限,之后执行该文件,即开始安装
[root@mdw ~]# chmod +x greenplum-db-4.3.3.1-build-1-RHEL5-x86_64.bin
[root@mdw ~]# ./greenplum-db-4.3.3.1-build-1-RHEL5-x86_64.bin
Greenplum4+默认安装路径在/usr/local下
注:如果免密没做好,就需要手工分发包到每台机器,并手工修改文件所属用户
5)测试各节点是否联通
[gpadmin@gpm ~]$ gpssh -f /home/gpadmin/conf/seg_list
Note: command history unsupported on this machine ...
=> pwd
[gp] /home/gpadmin
[gpdata1] /home/gpadmin
[gpdata2] /home/gpadmin
=> exit
6)批量创建Greenplum数据存放目录
[gpadmin@gpm conf]$ gpssh -f hostlist
=> mkdir gpdata
[gp]
[gpdata1]
[gpdata2]
=> cd gpdata
[gp]
[gpdata1]
[gpdata2]
=> mkdir gpmaster gpdatap1 gpdatap2 gpdatam1 gpdatam2
[gp]
[gpdata1]
[gpdata2]
=> ll
[gp] 总用量 20
[gp] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatam1
[gp] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatam2
[gp] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatap1
[gp] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatap2
[gp] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpmaster
[gpdata1] 总用量 20
[gpdata1] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatam1
[gpdata1] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatam2
[gpdata1] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatap1
[gpdata1] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatap2
[gpdata1] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpmaster
[gpdata2] 总用量 20
[gpdata2] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatam1
[gpdata2] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatam2
[gpdata2] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatap1
[gpdata2] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatap2
[gpdata2] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpmaster
=> exit
1.配置.bash_profile环境变量(每台机器)
[gpadmin@gpm ~]$ cd
[gpadmin@gpm ~]$ cat .bash_profile
source /opt/greenplum/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/home/gpadmin/gpdata/gpmaster/gpseg-1
export PGPORT=2345
export PGDATABASE=testDB
[gpadmin@mdw ~]$ source .bash_profile (让环境变量生效)
2.初始化配置文件
初始化 Greenplum 配置文件模板都在"../greenplum-db/docs/cli_help/gpconfigs"目录下,gpinitsystem_config是初始化 Greenplum 的模板,此模板中 Mirror Segment的配置都被注释;创建一个副本,对其以下配置进行修改:
[gpadmin@gp ~]$cd /usr/local/greenplum-db/docs/cli_help/gpconfigs
[gpadmin@gp ~]$cp gpinitsystem_config /home/gpadmin/gpinitsystem_config
[gpadmin@gp ~]$vim gpinitsystem_config
#以下为文本要修改的属性字段配置
#资源目录为在前面创建的资源目录,配置几次资源目录就是每个子节点有几个实例(这里配置了2个)
declare -a DATA_DIRECTORY=(/opt/greenplum/data/gpdatap1 /opt/greenplum/data/gpdatap2)
ARRAY_NAME=”testDB” #配置集群名称
MASTER_HOSTNAME=gp #master主节点的主机名称
MASTER_DIRECTORY=/home/gpadmin/gpdata/master #创建master存放路径
DATABASE_NAME=gp_sydb #配置的初始化数据库名称
MACHINE_LIST_FILE=/home/gpadmin/conf/seg_hosts #创建的文件gpinitsystem_config
初始化gp时,我们只创建segment,不要去创建mirror,如果初始化时同时创建segment和mirror,mirror有的节点会有问题,在启动的时候无法启动,这是gp4+版本的一个bug,特此说明。
3.执行初始化
[gpadmin@gp ~]gpinitsystem -c /home/gpadmin/conf/gpinitsystem_config -h /home/gpadmin/conf/seg_hosts
若初始化失败,需要删除/home/gpadmin/gpdata下的数据资源目录重新初始化;
初始化完成后,我们可以创建数据库,并创建用户进行登录使用了。
1)新建数据库
createdb -h localhost -p 5432 mygpdata
2)登录到mygpdata数据库中创建新用户,并给该用户赋权
psql mygpdata --登录数据库
CREATE USER test WITH PASSWORD 'P@ssw0rd' --设置密码
ALTER ROLE "test" SUPERUSER; --给账户赋予超级管理员权限.
3)设置远程登陆权限,只要在主节点下执行
vi /data /master/gpseg-1/pg_hba.conf
参数1:远程host,本地local
参数2:数据库名称
参数3:用户名
参数4:授权IP地址
参数5:加密方式
4)重启数据库
Gpstop(停止) -M fast(后面参数强制停止)
gpstart(启动)
5)查看GP状态 gpstate
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。