Greenplum5.12.0ForCentos6.5安装文档
1.greenplum数据库安装前期准备工作1.1 机器配置内存:1GBGreenplum 数据库版本 5.12.0Centos版本 6.51.2 配置系统信息,做安装Greenplum的准备工作1.2.1Greenplum集群介绍这里使用1个master,2个segment的集群,全部为VMware上的虚拟机,ip为:192.168.2.140192.168.2.150192.168.2.160
1.greenplum数据库安装前期准备工作
1.1 机器配置
内存:1GB
Greenplum 数据库版本 5.12.0
Centos版本 6.5
1.2 配置系统信息,做安装Greenplum的准备工作
1.2.1 Greenplum集群介绍
这里使用1个master,2个segment的集群,全部为VMware上的虚拟机,ip为:
192.168.61.80
192.168.61.81
192.168.61.82
其中192.168.61.80为master,其余为segment。
1.2.2 修改/etc/hosts文件(所有的机器都要修改)
这里主要是为之后Greenplum能够在各个节点之间相互通信做准备,添加如下:
[root@mdw ~]# vi /etc/hosts
192.168.61.80 mdw mdw
192.168.61.81 sdw1 sdw1
192.168.61.82 sdw2 sdw2
主机ip地址 主机名 hostlist配置中的名字
注意:一定要按照这个格式写,参数代表的含义,上面已经做出说明。
配置了这个文件之后,需要继续修改hostname,即修改/etc/sysconfig/network这个文件。
如下(所有机器都要修改):
80
[root@mdw ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=mdw
81
[root@sdw1 ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=sdw1
82
[root@sdw2 ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=sdw2
注意:这里修改hostname,需要重启之后方可生效,如需立即生效,需使用hostname命令。
80
[root@mdw ~]# hostname mdw
81
[root@sdw1 ~]# hostname sdw1
82
[root@sdw2 ~]# hostname sdw2
这里的HOSTNAME一定要与/etc/hosts中的主机名一致,最终可以使用ping命令测试是否配置好了:
一定要使用主机名来测试,使用ip地址测试无效。
[root@mdw ~]# ping sdw1
PING sdw1 (192.168.61.81) 56(84) bytes of data.
bytes from sdw1 (192.168.61.81): icmp_seq=1 ttl=64 time=1.14 ms
bytes from sdw1 (192.168.61.81): icmp_seq=2 ttl=64 time=0.726 ms
bytes from sdw1 (192.168.61.81): icmp_seq=3 ttl=64 time=0.714 ms
— sdw1 ping statistics —
packets transmitted, 3 received, 0% packet loss, time 2279ms
rtt min/avg/max/mdev = 0.714/0.862/1.148/0.204 ms
[root@mdw ~]# ping sdw2
PING sdw2 (192.168.61.82) 56(84) bytes of data.
bytes from sdw2 (192.168.51.55): icmp_seq=1 ttl=64 time=0.940 ms
bytes from sdw2 (192.168.51.55): icmp_seq=1 ttl=64 time=0.740 ms
bytes from sdw2 (192.168.51.55): icmp_seq=1 ttl=64 time=0.840 ms
— sdw2 ping statistics —
packets transmitted, 1 received, 0% packet loss, time 971ms
rtt min/avg/max/mdev = 0.940/0.940/0.940/0.000 ms
注意:修改了/etc/sysconfig/network 后,可以将/home/gpadmin/.gphostcache 删除掉,因为如果在修改network文件之前执行过gpssh-exkeys,可能会在gphostcache文件中生成主机名和hostlist配置中的名字形成对应关系,而greenplum之后不会再修改这个文件。
1.2.3 创建用户和用户组(所有机器都要创建)
[root@mdw ~]# groupadd -g 530 gpadmin
[root@mdw ~]# useradd -g 530 -u530 -m -d /home/gpadmin -s /bin/bash gpadmin
[root@mdw ~]# passwd gpadmin
1.2.4 修改系统内核(所有的机器都要修改)可以将原本的先注释掉,直接在文件最后添加这些参数.
[root@mdw ~]# 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
注意:每台机器都要修改,不然就会初始化不成功。
1.2.5 修改文件打开限制(每台机器都要修改):
[root@mdw ~]# vi /etc/security/limits.conf
# End of file
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
在这个文件末尾,添加上面四行就可以了。
1.2.6 关闭防火墙(每台机器都要)
关闭命令: service iptables stop
永久关闭防火墙:chkconfig iptables off
运行完成后查看防火墙关闭状态: service iptables status
除此之外,还需关闭SELINUX
[root@mdw selinux]# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
好了现在准备工作已经做好了,可以开始安装Greenplum了。
2 安装Greenplum
2.1 创建安装文件目录(每台机器都需要创建)
[root@mdw ~]# mkdir /opt/greenplum
[root@mdw ~]# chown -R gpadmin:gpadmin /opt/greenplum
之后安装文件,就放在这个目录下面
2.2 master上安装Greenplum(只需master即可)
上传Greenplum的安装文件greenplum-db-5.12.0-rhel6-x86_64.zip并解压缩。
unzip ./greenplum-db-5.12.0-rhel6-x86_64.zip
在root用户下,将下载的文件放在CentOS系统中自己能找到的位置即可,给该文件赋予可执行权限,之后执行该文件,即开始安装
chmod +x greenplum-db-5.12.0-build-1-RHEL6-x86_64.bin
./greenplum-db-5.12.0-build-1-RHEL6-x86_64.bin
期间需要修改默认安装目录,输入 /opt/greenplum/greenplum-db-5.12.0之后即可安装成功,此时master上的Greenplum安装成功了。
但是之前我们都是以root身份安装的,所以要将安装目录下的文件的所有者,都修改为gpadmin。
[root@mdw ~]# chown -R gpadmin:gpadmin /opt/greenplum
因为只在master上安装了Greenplum,所以接下来要将安装包批量发送到每个segment上,才能算是整个集群完整安装了Greenplum。
下面的操作都是为了连接所有节点,并将安装包发送到每个节点。
2.3 创建配置文件(只需master即可)
[root@mdw ~]# su gpadmin
[gpadmin@mdw ~]$ mkdir conf
[gpadmin@mdw ~]$ cd conf
[gpadmin@mdw conf]$ vi hostlist
mdw
sdw1
sdw2
[gpadmin@mdw conf]$ vi seg_hosts
sdw1
sdw2
注意:此时需要转换成gpadmin身份来操作了,按照上面的文件内容创建hostlist和seg_hosts文件备用。
hostlist存储了所有节点的主机名,seg_hosts存储了所有从节点的主机名。
这里文件中的mdw、sdw1、sdw2即为之前在 /etc/hosts文件中配置的最后一个参数。
2.4 打通所有节点
greenplum_path.sh中保存了运行Greenplum的一些环境变量设置,包括GPHOOME、PYTHONHOME等设置。
[gpadmin@mdw ~]$ source /opt/greenplum/greenplum-db/greenplum_path.sh
[gpadmin@mdw ~]$ gpssh-exkeys -f /home/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
[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
[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身份执行相应操作的时候就没有权限。
[INFO] completed successfully 这就说明成功打通了,之后就可以使用下面的命令测试开启批量操作,如下:
[gpadmin@mdw ~]$ gpssh -f /home/gpadmin/conf/hostlist
Note: command history unsupported on this machine ...
=> pwd
[sdw1] /home/gpadmin
[sdw2] /home/gpadmin
[ mdw] /home/gpadmin
=> exit
这里pwd命令是linux中的查看路径命令,这里也是查看一下批量操作时所处的位置,从中可以看到同时连接到了4个节点。这里如果/etc/hosts文件中参数只设置了两个,没有设置主机名,就只能同时连接2个节点,而且是随机的。
这里我们只是测试一下,exit之后先做一些其他的操作。
2.5 将安装包分发到每个子节点
打通之后需要将master中的greenplum安装包批量复制到各个segment节点上。
[gpadmin@mdw conf]$ cd /opt/greenplum/
打包:
[gpadmin@mdw greenplum]$ tar -cf gp.5.12.0.tar greenplum-db-5.12.0/
然后利用gpscp命令将这个文件复制到每一台机器上:
[gpadmin@mdw greenplum]$ gpscp -f /home/gpadmin/conf/seg_hosts gp.5.12.0.tar =:/opt/greenplum/
如果没有意外,就批量复制成功了,可以去子节点的相应文件夹查看,之后要将tar包解压,我们使用批量操作。
[gpadmin@mdw greenplum]$ cd ~/conf/
[gpadmin@mdw conf]$ gpssh -f seg_hosts
Note: command history unsupported on this machine ...
=> cd /opt/greenplum
[sdw1]
[sdw2]
=> tar -xf gp.5.12.0.tar
[sdw1]
[sdw2]
建立软链接
=> ln -s ./greenplum-db-5.12.0 greenplum-db
[sdw1]
[sdw2]
=> ll(可以使用ll查看一下是否已经安装成功)
=> exit
这样就完成了所有节点的安装。
3 初始化数据库
在初始化之前做一些准备工作。
3.1 批量创建Greenplum数据存放目录
切换到 /home/gpadmin/conf 路径下
[gpadmin@mdw conf]$ gpssh -f hostlist
=> mkdir gpdata
[mdw]
[sdw2]
[sdw1]
=> cd gpdata
[mdw]
[sdw2]
[sdw1]
=> mkdir gpmaster gpdatap1 gpdatap2 gpdatam1 gpdatam2
[mdw]
[sdw2]
[sdw1]
=> ll
=> exit
3.2 配置.bash_profile环境变量(每台机器都要)
编辑.bashrc文件,添加以下内容:
[gpadmin@mdw ~]$ cd ~
[gpadmin@mdw ~]$ vi .bashrc
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 .bashrc(让环境变量生效)
注意:PGPORT指的是你安装greenplum数据库的端口号。
3.3 创建初始化配置文件(只需master即可)
[gpadmin@mdw ~]$ vi /home/gpadmin/conf/gpinitsystem_config
ARRAY_NAME="Greenplum"
SEG_PREFIX=gpseg
PORT_BASE=33000
declare -a DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatap1 /home/gpadmin/gpdata/gpdatap2)
MASTER_HOSTNAME=mdw
MASTER_DIRECTORY=/home/gpadmin/gpdata/gpmaster
MASTER_PORT=2345
TRUSTED_SHELL=/usr/bin/ssh
MIRROR_PORT_BASE=43000
REPLICATION_PORT_BASE=34000
MIRROR_REPLICATION_PORT_BASE=44000
declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatam1 /home/gpadmin/gpdata/gpdatam2)
MACHINE_LIST_FILE=/home/gpadmin/conf/seg_hosts
3.4 初始化数据库(只需master即可)
[gpadmin@mdw ~]$ gpinitsystem -c /home/gpadmin/conf/gpinitsystem_config -s sdw2
中间会有一次确认是否初始化数据库的输入提示,输入y即可
初始化完成以后就已经启动了数据库,不需要在gpstart -a.
可以直接使用 psql -d postgres
访问数据库
其中sdw2是指master的standby所在的节点.
注意:如果上面有一些配置有问题,gpinitsystem就不能成功,日志在主节点/home/gpadmin/gpAdminLogs/的gpinitsystem_2018XXXX.log文件中。
需要注意的是如果初始化失败,查看这个日志文件,找到主要原因。
3.5设置访问权限(如果需要在其他管理工具中访问greenplum集群数据库,则需配置访问权限)(只需master即可)
Greenplum数据库作为mpp结构的系统,用户只能通过Master节点对数据进行访问,所以需要修改master中的hba文件,使其能够接受网络中其他终端的访问。
vi /home/gpadmin/gpdata/gpmaster/gpseq-1/pg_hba.conf 在最后加上
#user define
host all all 192.168.61.0/24 trust --根据实际情况修改
4 测试运行安装的Greenplum数据库
4.1 启动和停止数据库测试是否能正常启动和关闭
注意:初始化后的数据库是默认启动了的,所以,要先关闭gpstop -a
,再启动gpstart -a
# gpstart -a
# gpstop -a
4.2 访问数据库
# psql -d postgres
psql (8.3.23)
Type "help" for help.
postgres=#
输入查询语句,查看是否可以执行。
postgres=# select datname,datdba,encoding,datacl from pg_database;
datname | datdba | encoding | datacl
-----------+--------+----------+----------------------------------
postgres | 10 | 6 |
template1 | 10 | 6 | {=c/gpadmin,gpadmin=CTc/gpadmin}
template0 | 10 | 6 | {=c/gpadmin,gpadmin=CTc/gpadmin}
(3 rows)
postgres=# \q(退出)
更多推荐
所有评论(0)