GreenPlum完全安装_GP5.11.3完整安装
1 概述
1.1 背景
1.2 目标
1.3 使用对象
2 配置系统信息
2.1 配置系统信息,做安装Greenplum的准备工作
Greenplum 数据库版本5.11.3
2.1.1 Greenplum集群介绍
这里使用1个master,3个segment的集群,ip为:
192.168.0.11
192.168.0.12
192.168.0.13
其中192.168.0.11为master,其余为segment。
2.1.2 修改/etc/hosts文件(所有的机器都要修改)
这里主要是为之后Greenplum能够在各个节点之间相互通信做准备,添加如下:
格式为:主机ip地址 主机名
[root@mdw ~]# vi /etc/hosts
192.168.0.11 t-bdatav2-app01.hbusy.com t-bdatav2-app01
192.168.0.12 t-bdatav2-app02.hbusy.com t-bdatav2-app02
192.168.0.13 t-bdatav2-app03.hbusy.com t-bdatav2-app03
注意:一定要按照这个格式写,参数代表的含义,上面已经做出说明。
配置了这个文件之后,需要继续修改hostname,即修改/etc/sysconfig/network这个文件。
如下(所有机器都要修改):
[root@mdw ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME= t-bdatav2-app01
注意:这里修改hostname,需要重启之后方可生效,如需立即生效,需使用hostname命令。
[root@mdw ~]# hostname
这里的HOSTNAME一定要与/etc/hosts中的主机名一致,最终可以使用ping命令测试是否配置好了:
[root@mdw ~]# ping t-bdatav2-app02
PING sdw2 (192.168.0.58) 56(84) bytes of data.
64 bytes from sdw2 (192.168.0.58): icmp_seq=1 ttl=64 time=0.940 ms
--- sdw2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 971ms
rtt min/avg/max/mdev = 0.940/0.940/0.940/0.000 ms
[root@mdw ~]# ping t-bdatav2-app03
PING sdw3 (192.168.0.59) 56(84) bytes of data.
64 bytes from sdw3 (192.168.0.59): icmp_seq=1 ttl=64 time=1.62 ms
64 bytes from sdw3 (192.168.0.59): icmp_seq=2 ttl=64 time=0.669 ms
--- sdw3 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1146ms
rtt min/avg/max/mdev = 0.669/1.148/1.627/0.479 ms
一定要使用主机名来测试,使用ip地址测试无效。
注意:修改了/etc/sysconfig/network 后,可以将/home/gpadmin/.gphostcache 删除掉,因为如果在修改network文件之前执行过gpssh-exkeys,可能会在gphostcache文件中生成主机名和hostlist配置中的名字形成对应关系,而greenplum之后不会再修改这个文件。
2.1.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
Changing password for user gpadmin.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
2.1.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
注意:每台机器都要修改,不然就会初始化不成功。
2.1.5 修改文件打开限制(每台机器都要修改):
[root@mdw ~]# vi /etc/security/limits.conf
# End of file
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
在这个文件末尾,添加上面四行就可以了。
2.1.6 关闭防火墙(每台机器都要)
[root@mdw ~]# service iptables stop
(或者开放5432端口,该端口之后会用到)
[root@mdw ~]# /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
[root@mdw ~]# /etc/rc.d/init.d/iptables save
除此之外,还需关闭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了。
3 安装Greenplum
3.1 创建安装文件目录(每台机器都需要创建)
[root@mdw ~]# mkdir /opt/greenplum
[root@mdw ~]# chown -R gpadmin:gpadmin /opt/greenplum
之后安装文件,就放在这个目录下面
3.2 下载安装包
官网 https://network.pivotal.io/products/pivotal-gpdb
注意:下载安装包之前,需要在官网注册账号,方可下载。
3.3 master上安装Greenplum(只需master即可)
上传Greenplum的安装文件greenplum-db-5.11.3-rhel7-x86_64.zip并解压缩。(需要联网权限)
# unzip ./greenplum-db-5.11.3-rhel7-x86_64.zip
在root用户下,将下载的文件放在CentOS系统中自己能找到的位置即可,给该文件赋予可执行权限,之后执行该文件,即开始安装
# chmod +x greenplum-db-5.11.3-rhel7-x86_64.bin
# ./ greenplum-db-5.11.3-rhel7-x86_64.bin
期间需要修改默认安装目录,输入 /opt/greenplum/greenplum-db-5.11.3之后即可安装成功(yes 后面的第二次提示),此时master上的Greenplum安装成功了。
但是之前我们都是以root身份安装的,所以要将安装目录下的文件的所有者,都修改为gpadmin。
[root@mdw ~]# chown -R gpadmin:gpadmin /opt/greenplum
因为只在master上安装了Greenplum,所以接下来要将安装包批量发送到每个segment上,才能算是整个集群完整安装了Greenplum。
下面的操作都是为了连接所有节点,并将安装包发送到每个节点
3.4 创建配置文件
[root@mdw ~]# su – gpadmin
[gpadmin@mdw ~]$ mkdir conf
[gpadmin@mdw ~]$ cd conf
[gpadmin@mdw conf]$ vi hostlist
t-bdatav2-app01
t-bdatav2-app02
t-bdatav2-app03
[gpadmin@mdw conf]$ vi seg_hosts
t-bdatav2-app02
t-bdatav2-app03
注意:此时需要转换成gpadmin身份来操作了,按照上面的文件内容创建hostlist和seg_hosts文件备用。
hostlist存储了所有节点的主机名,seg_hosts存储了所有从节点的主机名。
这里文件中的t-bdatav2-app01、t-bdatav2-app02、t-bdatav2-app03
即为之前在 /etc/hosts文件中配置的最后一个参数。
3.5 打通所有节点
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
... 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身份执行相应操作的时候就没有权限。
[INFO] completed successfully 这就说明成功打通了,之后就可以使用下面的命令开启批量操作,如下:
[gpadmin@mdw ~]$ gpssh -f /home/gpadmin/conf/hostlist
Note: command history unsupported on this machine ...
=> pwd
[sdw1] /home/gpadmin
[sdw3] /home/gpadmin
[sdw2] /home/gpadmin
[ mdw] /home/gpadmin
=> exit
这里pwd命令是linux中的查看路径命令,这里也是查看一下批量操作时所处的位置,从中可以看到同时连接到了4个节点。这里如果/etc/hosts文件中参数只设置了两个,没有设置主机名,就只能同时连接2个节点,而且是随机的。
这里我们只是测试一下,exit之后先做一些其他的操作。
3.6 将安装包分发到每个子节点
打通之后需要将master中的greenplum安装包批量复制到各个segment节点上。
[gpadmin@mdw conf]$ cd /opt/greenplum/
打包:
[gpadmin@mdw greenplum]$ tar -cf gp.5.11.tar greenplum-db-5.11.3/
然后利用gpscp命令将这个文件复制到每一台机器上:
[gpadmin@mdw greenplum]$ gpscp -f /home/gpadmin/conf/seg_hosts gp. 5.11.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
[sdw3]
[sdw1]
[sdw2]
=> tar -xf gp.5.11.tar
[sdw3]
[sdw1]
[sdw2]
建立软链接
=> ln -s ./greenplum-db-5.11.3 greenplum-db
[sdw3]
[sdw1]
[sdw2]
=> ll(可以使用ll查看一下是否已经安装成功)
=> exit
这样就完成了所有节点的安装。
4 初始化数据库
在初始化之前的的几个步骤都是做一些准备工作。
4.1 批量创建Greenplum数据存放目录
[gpadmin@mdw conf]$ gpssh -f hostlist
=> mkdir gpdata
[sdw3]
[mdw]
[sdw2]
[sdw1]
=> cd gpdata
[sdw3]
[mdw]
[sdw2]
[sdw1]
=> mkdir gpmaster gpdatap1 gpdatap2 gpdatam1 gpdatam2
[sdw3]
[mdw]
[sdw2]
[sdw1]
=> ll
=> exit
4.2 配置.bash_profile环境变量(每台机器都要)
编辑.bash_profile文件,添加以下内容:
[gpadmin@mdw ~]$ cd ~
[gpadmin@mdw ~]$ vi .bash_profile
source /opt/greenplum/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/home/gpadmin/gpdata/gpmaster/gpseg-1
export PGPORT=5432
#export PGDATABASE=testDB
export PGDATABASE=postgres
[gpadmin@mdw ~]$ source .bash_profile(让环境变量生效)
注意:PGPORT指的是你安装greenplum数据库的端口号。
这里有个问题,Greenplum自己会安装一个Python包,是2.6.6的。而CentOS6.5本身自带有一个Python包,是2.6.2的,设置了以上的环境变量了之后,使用yum安装一些软件的时候就会出现问题(因为yum是基于Python的),因为系统就发现自己有两个Python包,他不知道用哪一个了。我还没有试过更新系统的Python包,需要安装软件的时候,我就将环境变量都注释掉,安装完之后再让他生效。
4.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= t-bdatav2-app01
MASTER_DIRECTORY=/home/gpadmin/gpdata/gpmaster
MASTER_PORT=5432
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
4.4 初始化数据库(只需master即可)
[gpadmin@mdw ~]$ gpinitsystem -c /home/gpadmin/conf/gpinitsystem_config -s t-bdatav2-app03
其中sdw3是指master的standby所在的节点,我看书上和网上的一些资料都将standby放在最后一个节点,可能是约定俗成的吧。
注意:如果上面有一些配置有问题,gpinitsystem就不能成功,日志在主节点/home/gpadmin/gpAdminLogs/的gpinitsystem_2016XXXX.log文件中。
需要注意的是如果初始化失败,一定要认真查看这个日志文件,一味重复安装没有太大意义,重要的是要找到主要原因。
--------------------
spread mirror模式:
(spread模式,主机的第一个mirror在下个主机,第二个mirror在次下个主机,第三mirror在次次下个主机....)
执行初始化命令:gpinitsystem加上–S,节点分布方式为spread
[gpadmin@master ~]$gpinitsystem -c gpinitsystem_config -h seg_hosts -s standby –S
5 测试运行安装的Greenplum数据库
5.1 启动和停止数据库测试是否能正常启动和关闭
# gpstart
# gpstop
5.2 访问数据库
# psql -d postgres
psql (8.2.15)
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(退出)
6 安装客户端
安装navicat postgresql,使用该客户端,连接greenplum5.11数据库
6.1 用户创建密码
postgres =# alter role gpadmin with password 'gpadmin';
6.2 添加新的客户端服务器信息
在master节点的 $MASTER_DATA_DIRECTORY/pg_hba.conf 中添加新的客户端服务器信息。master节点的pg_hba.conf配置文件,控制客户端访问Greenplum系统。
注意:segment节点也有pg_hba.conf配置文件,它只能控制master节点能否访问segment,决不能运行客户端连接。所以不要修改segment的pg_hba.conf文件。
格式:
host database role CIDR-address authentication-method
pg_hba.conf中记录是被顺序读取的,所有记录的顺序是有象征性意义的。
通常前面的记录匹配更少的连接但要求较弱的认证,后面的记录匹配更多的连接但要求更严格的认证。
例如:允许all用户在10.69.3.x网段访问所有数据库。
# vi /home/gpadmin/gpdata/gpmaster/gpseg-1/pg_hba.conf
host all all 10.69.3.0/24 trust
在master重新加载pg_hba.conf文件,需要重启Greenplum数据库。
# gpstop –a
# gpstart –a
6.3 验证客户端能否连接数据库
# psql -h 192.168.0.11 -p 5432 -d postgres -U gpadmin -W
Password for user gpadmin:
-h 192.168.0.11 是指定连接master的ip地址
-p 5432 是安装greenplum数据库时,设置的端口号,当前数据库端口号是5432
-u gpadmin 是指定连接的用户名
6.4 项目测试环境连接信息
6.4.1 greenplum访问信息:
地址:192.168.0.11
端口:5432
初始数据库:postgres
用户:gpadmin
密码:gpadmin
7 说明
greenplum5.11.3(这个版本应该是2018年9月的,没使用最新的)、navicat postgresql安装文件太大就不上传了,如有需要私信,单独发你,假如版本一致,直接复制命令行敲进去就可以了,如有疑问,可在讨论区、微信公共号、QQ沟通联系。
GreenPlum完全安装_GP5.11.3完整安装的更多相关文章
- 最新MATLAB R2021b超详细安装教程(附完整安装文件)
摘要:本文详细介绍Matlab R2021b的安装步骤,为方便安装这里提供了完整安装文件的百度网盘下载链接供大家使用.从文件下载到证书安装本文都给出了每个步骤的截图,按照图示进行即可轻松完成安装使用. ...
- 最新MATLAB R2020b超详细安装教程(附完整安装文件)
摘要:本文详细介绍Matlab R2020b的安装步骤,为方便安装这里提供了完整安装文件的百度网盘下载链接供大家使用.从文件下载到证书安装本文都给出了每个步骤的截图,按照图示进行即可轻松完成安装使用. ...
- MATLAB R2019b超详细安装教程(附完整安装文件)
摘要:本文详细介绍Matlab的安装步骤,为方便安装这里提供了完整安装文件的百度网盘下载链接供大家使用.从文件下载到证书安装本文都给出了每个步骤的截图,按照图示进行即可轻松完成安装使用.本文目录如首页 ...
- Solaris 11配置IPS安装系统包(类似linux中的yum源)
参考:http://blog.chinaunix.net/uid-8860-id-3777457.html 一. 概述: Solaris 11被称为第一个云操作系统,因此在很多方面体现了云系统的一些特 ...
- Greenplum/Deepgreen(集群/分布式)安装文档
Deepgreen分布式安装文档 环境准备 1.安装VMware虚拟机软件,然后在VMware安装三台Linux虚拟机(使用centos7版本) 2.使用的虚拟机如下: 192.168.136.155 ...
- Kubernetes(k8s)完整安装教程
Kubernetes(k8s)完整安装教程 2019-08-27 2.3k 记录 发表评论 目录 1 安装 1.1 安装 Docker 1.2 安装 VirtualBox 1.3 安装 kubect ...
- 如何使用本地账户"完整"安装 SharePoint Server 2010+解决“New-SPConfigurationDatabase : 无法连接到 SharePoint_Config 的 SQL Server 的数据 库 master。此数据库可能不存在,或当前用户没有连接权限。”
注:目前看到的解决本地账户完整安装SharePoint Server 2010的解决方案如下,但是,有但是的哦: 当我们选择了"完整"模式安装SharePointServer201 ...
- zabbix完整安装
一.nginx安装 1.必要软件准备: 为了支持rewrite功能,我们需要安装pcre: yum install pcre-* 需要ssl的支持,如果不需要ssl支持,请跳过这一步: yum ins ...
- IIS网站或系统验证码不显示问题——"使用了托管的处理程序,但是未安装或未完整安装 ASP.NET"
在IIS上发布了一个系统,但是登陆页面的验证码图片一直出不来,尝试了各种办法,权限.路径.继承父类路径等都不管用,进入Login.html,对着无验证码图片的图标,右键复制图片的网址,粘贴到地址栏,出 ...
随机推荐
- Win8 Metro(C#)数字图像处理--2.59 P分位法图像二值化
原文:Win8 Metro(C#)数字图像处理--2.59 P分位法图像二值化 [函数名称] P分位法图像二值化 [算法说明] 所谓P分位法图像分割,就是在知道图像中目标所占的比率Rat ...
- 浏览器禁用cookie后php如何保持session会话-use_trans_sid机制
原文:浏览器禁用cookie后php如何保持session会话-use_trans_sid机制 为防止浏览器禁用cookie导致服务器会话无法保持,php开发了一个机制,该机制开启后,浏览器发起请求后 ...
- 利用docker在window7下安装TensorFlow
安装过程下碰了不少坑,记录一下安装过程,方便以后有需要时复用. 1.安装docker 下载最新版本的docker并且默认安装即可,安装后打开Docker Quickstart Terminal,初次进 ...
- C# ACCESS 向含有自动编码字段表中添加记录提示“查询值的数目与目标字段中的数目不同”
引发错误的SQL语句如下: sqlStr = "insert into tb_ReportLog values('" + DevSite + "','" + D ...
- 进程间通信 - 动态链接库中共享内存(利用DLL的2~3G的地址段空间)
前言 进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码.数据,以及其他的一些资源组成.32位系统的进程分配4G的虚拟地址空间.内存地址范围是0x00000000-0xFFFFFF ...
- QT延时方法整理(QTimer::singleShot,QWaitCondition,QDateTime.secsTo三种新方法)
1: void QTimer::singleShot ( int msec, QObject * receiver, const char * member ) [static] 样例: #inclu ...
- Building PySide on Microsoft Windows
Prerequisites MS Visual Studio Express 2008 [microsoft.com] NOTE: Visual Studio Express 2010 is not ...
- GetParent、SetParent、MoveWindow - 获取、指定父窗口和移动窗口,IsChild - 判断两个窗口是不是父子关系
提示: SetParent 应该 Windows.SetParent, 因为 TForm 的父类有同名方法. //声明: {获取父窗口句柄} GetParent(hWnd: HWND): HWND; ...
- Qt使用MinGW编译,如何忽略警告
Qt编译时经常出现以下警告: warning: unused parameter 'arg1' [-Wunused-parameter] warning: unused variable 'i' [- ...
- Linux使用技巧:linux下将命令值赋给shell变量
很多小伙伴在写shell脚本的时候需要把命令输出的值赋给一些变量,使得脚本在运行过程中能够顺利使用这些变量.例如:很多时候我们就需要获取当前目录的绝对路径,pwd这个命令大家在熟悉不过,可是要把这个命 ...