Greenplum安装

最近需要安装Greenplum测试一些东西,在安装过程中出现了许多问题,所以在这里将安装过程整理一下,主要参考《Greenplum企业应用实践》和http://jxzhfei.blog.51cto.com/1382161/1767126,链接的文章和书中的安装是基本吻合的,但是比书上更加详细一些。

我安装的平台有两个:win虚拟机和云服务器,有区别的地方我会注明的。

下面我详细记录一下安装过程:

1.安装centOS操作系统

我使用的是CentOS6.5。需要注意的是CenOS6和CentOS7的差别还是很大的。

1.CenOS7似乎比CenOS6占用的内存更多一些。

我最初是在win虚拟机上安装CenOS7的Gnome版本,我的win是4G内存,装两个CenOS7就已经跑不动了;之后改为CenOS6.5之后也安装Gnome桌面,同样的内存,可以支持三个CenOS6.5同时跑,每个虚拟机分配的内存是512M。后来做一些操作发现也跑不动了,之后将内存加为6G才基本可以跑,但是发现也有较大的内存交换。

发生内存交换的时候,我查看了win的任务管理器,发现其实内存并没有达到100%,占用的一般是3.x/4G或者5.x/6G,而硬盘的使用率是100%。刚开始不知道是发生了交换,以为内存是够用的,可是硬盘为什么达到100%使用率,后来问了其他人才得知这是内存不够用发生了交换,所以硬盘的写压力比较大。

2.CenOS7的mini版本中有很多命令都没有安装,例如ifconfig在mini版本中就不能执行,但是在CenOS6中是可以的

3.CenOS7的防火墙与CentOS6也不相同,CentOS7的防火墙默认使用的是firewall,与CentOS6使用iptables不一样。所以关掉防火墙的方法也不相同,因为之后安装Greenplum时需要关闭防火墙,所以比较关心这个问题

4.CenOS7的桌面版本有Gnome版本和KDE版本,发现KDE版本其实还挺难用的,所以后来也舍弃了;CentOS6在安装的过程中只看到了Desktop版本,并不区分Gnome和KDE版本,所以我姑且认为CentOS6只有KDE版本。

由于这个不同,我后来放弃了CentOS7,使用了CentOS6版本。其实安装Greenplum不需要使用桌面,只需要命令行就可以了,但是由于本人水平有限,需要借助一些桌面,所以在虚拟机上安装了CentOS的桌面版。

2.配置系统信息做安装Greenplum的准备工作

1.Greenplum集群介绍

这里使用1个master,3个segment的集群,ip为

196.168.0.56

196.168.0.57

196.168.0.58

196.168.0.59

其中196.168.0.56为master,其余为segment。

2.修改/etc/hosts文件(所有的机器都要修改)

这里主要是为之后Greenplum能够在各个节点之间相互通信做准备

[[email protected] ~]# cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.0.56     mdw   mdw

192.168.0.57     sdw1   sdw1

192.168.0.58     sdw2   sdw2

192.168.0.59     sdw3   sdw3(主机ip地址    主机名  hostlist配置中的名字)

注意一定要按照这个格式写,三个参数分别代表的含义在括号中已经做了说明。

配置了这个文件之后,一定要同时修改 /etc/sysconfig/network这个文件如下(所有机器都要修改):

[[email protected] ~]# cat /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=mdw

这里的HOSTNAME一定要与/etc/hosts中的主机名一致,最终可以使用ping命令测试是否配置好了:

[[email protected] ~]# ping sdw1
PING sdw1 (192.168.0.57) 56(84) bytes of data.
64 bytes from sdw1 (192.168.0.57): icmp_seq=1 ttl=64 time=1.14 ms
64 bytes from sdw1 (192.168.0.57): icmp_seq=2 ttl=64 time=0.726 ms
64 bytes from sdw1 (192.168.0.57): icmp_seq=3 ttl=64 time=0.714 ms
^C
--- sdw1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2279ms
rtt min/avg/max/mdev = 0.714/0.862/1.148/0.204 ms
[[email protected] ~]# ping sdw2
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
^C
--- 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
[[email protected] ~]# ping sdw3
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
^C
--- 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地址测试无效。

3.创建用户和用户组(所有机器都要创建)

[[email protected] ~]# groupadd -g 530 gpadmin
[[email protected] ~]# useradd -g 530 -u530 -m -d /home/gpadmin -s /bin/bash gpadmin
[[email protected] ~]# passwd gpadmin
Changing password for user gpadmin.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.

4.修改系统内核(所有机器,可以参考书上216页)

[[email protected] ~]# 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

[[email protected]~]# sysctl -p(让配置生效)

注意每台机器都要修改,不然就会初始化不成功,我在操作的过程中segment结点复制的时候不小心少了一块内容,死活不能gpinitsystem成功,花了好多时间调试,一直找不到问题。

5.修改文件打开限制(每台机器都要修改):

[[email protected] ~]# vi /etc/security/limits.conf# End of file
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

在这个文件文末添加上面四行就可以了。

6.关闭防火墙(每台机器都要)

[[email protected] ~]#chkconfig iptables off

除此之外

[[email protected] selinux]# cat /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

1.创建安装文件目录(每台机器)

[[email protected] ~]# mkdir /opt/greenplum
[[email protected] ~]# chown -R gpadmin:gpadmin /opt/greenplum

之后安装文件就放在这个目录下面

2.下载安装包

官网https://network.pivotal.io/products/pivotal-gpdb#/releases/1683

上图中选择最新发布版本,

上图中选择最后一个

上图中选择最后一个。

3.master上安装Greenplum(只需master即可)

将下载的文件放在CenOS系统中自己能找到的位置即可,给该文件赋予执行权限,之后执行该文件,即开始安装

[[email protected] ~]# chmod +x greenplum-db-4.3.3.1-build-1-RHEL5-x86_64.bin[[email protected] ~]# ./greenplum-db-4.3.3.1-build-1-RHEL5-x86_64.bin

期间需要修改默认安装目录,输入/opt/greenplum/greenplum-db-4.8.3.1

之后即可安装成功,此时master上的Greenplum安装成功了。但是之前我们都是以root身份安装的,所以要将安装目录下的文件的所有者都修改为gpadmin

[[email protected] ~]# chown -R gpadmin:gpadmin /opt/greenplum

因为只在master上安装了Greenplum,所以下面要将安装包批量发送到每个segment上,才能算是整个Greenplum集群完整安装了Greenplum。下面的操作都是为了连接所有节点,并将安装包发送到每个节点。

4.创建配置文件

[[email protected] ~]# su gpadmin
[[email protected] root]$ cd
[[email protected] ~]$ cat ./conf/hostlist
mdw
sdw1
sdw2
sdw3
[[email protected] ~]$ cat ./conf/seg_hosts
sdw1
sdw2
sdw3

注意此时需要转换成gpadmin身份来操作了,按照上面的文件内容创建hostlist和seg_hosts文件,备用。

这里文件中的mdw、sdw1、sdw2、sdw3即为之前在/etc/hosts文件中配置的最后一个参数。

5.打通所有节点

greenplum_path.sh中保存了运行Greenplum的一些环境变量设置,包括GPHOOME、PYTHONHOME等设置

[[email protected] ~]$ source /opt/greenplum/greenplum-db/greenplum_path.sh
[[email protected] ~]$ 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

这就说明成功打通了,之后就可以使用下面的命令开启批量操作,如下:

注意gpssh-exkeys命令使用的时候一定要用gpadmin身份,因为这个命令会生成ssh的免密码登录的秘钥,在/home/gpadmin/.ssh这里。如果使用root身份使用gpssh-exkeys命令,那么生成的.ssh秘钥在root的home下面或者是在/home/gpadmin下面但是是root的所有者,如果之后使用gpadmin身份执行相应操作的时候就没有权限。

[[email protected] ~]$ 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之后先做一些其他的操作。

6.将安装包分发到每个子节点

打通之后需要将master中的greenplum安装包批量复制到各个segment节点上。

[[email protected] conf]$ cd /opt/greenplum/打包:[[email protected] greenplum]$ tar -cf gp.4.3.tar greenplum-db-4.3.8.1/
然后利用gpscp命令将这个文件复制到每一台机器上:
[[email protected] greenplum]$ gpscp -f /home/gpadmin/conf/hostlist gp.4.3.tar =:/opt/greenplum/

ok,如果没有意外,就批量复制成功了,可以去子节点的相应文件夹查看,之后要将tar包解压,我们使用批量操作

[[email protected] conf]$ gpssh -f hostlist
=> cd /opt/greenplum
[sdw3]
[sdw1]
[sdw2]
[mdw]
=> tar -xf gp.4.3.tar
[sdw3]
[sdw1]
[sdw2]
[mdw]

建立软链接
=> ln -s ./greenplum-db-4.3.8.1 greenplum-db
[sdw3]
[sdw1]
[sdw2]
[mdw]=> ll(可以使用ll查看一下是否已经安装成功)

这样就完成了所有节点的安装。

4.初始化数据库

在初始化之前的的几个步骤都是做一些准备工作。

1.批量创建Greenplum数据存放目录

[[email protected] 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
[sdw3] 总用量 20
[sdw3] drwxrwxr-x 2 gpadmin gpadmin 4096 7月  18 19:46 gpdatam1
[sdw3] drwxrwxr-x 2 gpadmin gpadmin 4096 7月  18 19:46 gpdatam2
[sdw3] drwxrwxr-x 2 gpadmin gpadmin 4096 7月  18 19:46 gpdatap1
[sdw3] drwxrwxr-x 2 gpadmin gpadmin 4096 7月  18 19:46 gpdatap2
[sdw3] drwxrwxr-x 2 gpadmin gpadmin 4096 7月  18 19:46 gpmaster
[ mdw] 总用量 20
[ mdw] drwxrwxr-x 2 gpadmin gpadmin 4096 7月  18 19:46 gpdatam1
[ mdw] drwxrwxr-x 2 gpadmin gpadmin 4096 7月  18 19:46 gpdatam2
[ mdw] drwxrwxr-x 2 gpadmin gpadmin 4096 7月  18 19:46 gpdatap1
[ mdw] drwxrwxr-x 2 gpadmin gpadmin 4096 7月  18 19:46 gpdatap2
[ mdw] drwxrwxr-x 2 gpadmin gpadmin 4096 7月  18 19:46 gpmaster
[sdw2] 总用量 20
[sdw2] drwxrwxr-x 2 gpadmin gpadmin 4096 7月  18 19:46 gpdatam1
[sdw2] drwxrwxr-x 2 gpadmin gpadmin 4096 7月  18 19:46 gpdatam2
[sdw2] drwxrwxr-x 2 gpadmin gpadmin 4096 7月  18 19:46 gpdatap1
[sdw2] drwxrwxr-x 2 gpadmin gpadmin 4096 7月  18 19:46 gpdatap2
[sdw2] drwxrwxr-x 2 gpadmin gpadmin 4096 7月  18 19:46 gpmaster
[sdw1] 总用量 20
[sdw1] drwxrwxr-x 2 gpadmin gpadmin 4096 7月  18 19:46 gpdatam1
[sdw1] drwxrwxr-x 2 gpadmin gpadmin 4096 7月  18 19:46 gpdatam2
[sdw1] drwxrwxr-x 2 gpadmin gpadmin 4096 7月  18 19:46 gpdatap1
[sdw1] drwxrwxr-x 2 gpadmin gpadmin 4096 7月  18 19:46 gpdatap2
[sdw1] drwxrwxr-x 2 gpadmin gpadmin 4096 7月  18 19:46 gpmaster
=> exit

2.配置.bash_profile环境变量(每台机器)

[[email protected] ~]$ cd
[[email protected] ~]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

source /opt/greenplum/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/home/gpadmin/gpdata/gpmaster/gpseg-1
export PGPORT=2345
export PGDATABASE=testDB

[[email protected] ~]$ source .bash_profile(让环境变量生效)

我自己是觉得这个环境变量使用source有时候不能生效,所以需要重启机器。

这里有个问题,Greenplum自己会安装一个Python包,是2.6.6的,具体是干什么用的忘了,之后再补充。而CentOS6.5本身自带有个一Python包,是2.6.2的,设置了以上的环境变量了之后,使用yum安装一些软件的时候就会出现问题(因为yum是基于Python的),因为系统就发现自己有两个Python包,他不知道用哪一个了。我还没有试过更新系统的Python包,需要安装软件的时候,我就将环境变量都注释掉,安装完之后再让他生效。

3.初始化配置文件

[[email protected] ~]$ cat /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

4.初始化数据库

[[email protected] ~]$ gpinitsystem -c /home/gpadmin/conf/gpinitsystem_config -s sdw3

其中sdw3是指master的standby所在的节点,我看书上和网上的一些资料都将standby放在最后一个节点,可能是约定俗成的吧。

如果上面有一些配置有问题,gpinitsystem就不能成功,日志在主节点/home/gpadmin/gpAdminLogs/的gpinitsystem_2016XXXX.log文件中。

需要注意的是如果初始化失败,一定要认真查看这个日志文件,一味重复安装没有太大意义,重要的是要找到主要原因。我在/etc/sysctl.conf文件中粘贴的时候出现了一些错误,所以一直找不到原因,最后联系到Greenplum官方社区,很感谢给与我帮助的人!

原创文章,转载请注明出处!

时间: 2024-10-23 13:58:24

Greenplum安装的相关文章

GreenPlum安装greenplum-cc-web监控

一. GreenPlum集群安装环境 由虚拟机搭建的一台master两台segment. 二.安装前准备 1) 所需安装包 GreenPlum监控安装包: greenplum-cc-web-3.0.2-LINUX-x86_64.zip 2) 修改postgresql.conf配置文件 进入你master的文件系统中的gpseg-1文件夹下 $ cd /data/master/gpseg-1 编辑postgresql.conf,添加以下参数:  gp_enable_gpperfmon=on gpp

greenplum安装方法详解

一.环境准备 1.安装VMware软件,然后在VMware里安装三台Linux虚拟机(我使用的是redhat) 2.设置虚拟机 主机名 ip 内存 硬盘 mdw 192.168.10.200 500M 8G sdw1 192.168.10.201 500M 8G sdw2 192.168.10.202 500M 8G 3.下载数据库安装文件greenplum-db-4.2.2.4-build-1-CE-RHEL5-i386 二.安装 注:标示"三台主机"的表示要在三台电脑上都做该操作,

Greenplum源码编译安装(单机及集群模式)完整版

公司有个项目需要安装greenplum数据库,让我这个gp小白很是受伤,在网上各种搜,结果找到的都是TMD坑货帖子,但是经过4日苦战,总算是把greenplum的安装弄了个明白,单机及集群模式都部署成功,下面由我给大家分享一下整个部署过程,并小分析一下安装过程中遇到的各种坑. 首先,说一下我的环境,CentOS 7.2.1511,64位操作系统,全新安装,没有更新过 [[email protected] ~]# cat /etc/redhat-release CentOS Linux relea

greenplum集群安装与增加节点生产环境实战

1.准备环境 1.1集群介绍 系统环境:centos6.5 数据库版本:greenplum-db-4.3.3.1-build-1-RHEL5-x86_64.zip greenplum集群中,2台机器IP分别是 [[email protected] ~]# cat /etc/hosts 127.0.0.1   localhost localhost.localdomain ::1         localhost localhost.localdomain localhost6 localhos

greenplum 集群部署

1.安装依赖库 所有节点执行 # yum -y install rsync coreutils glib2 lrzsz sysstat e4fsprogs xfsprogs ntp readline-devel zlib zlib-devel openssl openssl-devel pam-devel libxml2-devel libxslt-devel python-devel tcl-devel gcc make smartmontools flex bison perl perl-d

greenplum分布式集群(数据仓库)实战总结一

1.准备环境 1.1集群介绍 系统环境:centos6.5 数据库版本:greenplum-db-4.3.3.1-build-1-RHEL5-x86_64.zip greenplum集群中,4台机器IP分别是 [[email protected] ~]# cat /etc/hosts 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1         localhost localh

配置greenplum参数

在进行一个greenplum安装之前需要进行配置一下相关的系统参数,否则很容易出现意想不到的错误. 1.修改系统参数 编辑 /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

centos7 编译安装greenplum5.7

一.配置系统 安装是以一个主节点,三个子节点进行安装.gp是在github上下载的5.7的源码.地址https://github.com/greenplum-db/gpdb/tree/5.7.0. 1.Greenplum集群介绍 这里使用1个master,3个segment的集群,ip为 196.168.12.101 196.168.12.102 196.168.12.103 196.168.12.104 2.修改本机名(所有机器) 通过vi /etc/hostname 进行修改 各个节点修改成

Greenplum-cc-web安装

第一章 文档概述 1. 本安装手册描述适用于Greenplum4.0以上版本的安装Greenplum-cc-web操作 第二章 安装介质 针对Greenplum版本下载对应Greenplum-cc-web包体greenplum-cc-web-x.x.x-LINUX-x86_64.zip;下载地址: https://network.pivotal.io/products/pivotal-gpdb#/releases/1683/file_groups/26nNum=10 第三章 安装Performa