阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Greenplum 4.3 For CentOS 6.5 安装指南

233次阅读
没有评论

共计 9635 个字符,预计需要花费 25 分钟才能阅读完成。

1.greenplum 数据库安装前期准备工作

1.1 安装 Linux

  • 内存:最小 1GB,推荐 2GB 或以上。
  • 交换空间: 内存大小是 1 -2GB 时,交换空间是内存的 1.5 倍,内存大小 2 -16GB 时,交换空间等于内存大小,内存大小 16G 以上时,交换空间为 16GB。
  • 需要选择以下组件:GNOME 桌面、编辑器、开发工具、开发库等,具体参照 Linux 标准文档。
  • 使用安装光盘安装 CentOS-6.5-x86_64-bin
  • Greenplum 数据库版本 4.3.9.1

1.2 配置系统信息,做安装 Greenplum 的准备工作

1.2.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。

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

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

格式为:主机 ip 地址 主机名

[root@mdw ~]# vi /etc/hosts

192.168.0.56 mdw
192.168.0.57 sdw1
192.168.0.58 sdw2
192.168.0.59 sdw3

注意:一定要按照这个格式写,参数代表的含义,上面已经做出说明。

配置了这个文件之后,需要继续修改 hostname,即修改 /etc/sysconfig/network 这个文件。

如下 (所有机器都要修改)

[root@mdw ~]# vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=mdw

注意:这里修改 hostname,需要重启之后方可生效,如需立即生效,需使用 hostname 命令。

[root@mdw ~]# hostname mdw

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

[root@mdw ~]# 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

--- 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
[root@mdw ~]# 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 --- 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 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 --- 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 之后不会再修改这个文件。

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

Changing password for user gpadmin.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

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  关闭防火墙(每台机器都要)

[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 了。

2 安装 Greenplum

2.1  创建安装文件目录(每台机器都需要创建)

[root@mdw ~]# mkdir /opt/greenplum
[root@mdw ~]# chown -R gpadmin:gpadmin /opt/greenplum

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

 

2.2  下载安装包

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

注意:下载安装包之前,需要在官网注册账号,方可下载。

(1) 选择最新发布版本

 Greenplum 4.3 For CentOS 6.5 安装指南

(2) 选择最后一个 4.3.9.1 Database Server

 Greenplum 4.3 For CentOS 6.5 安装指南

(3) 选择第二个 Greenplum Database 4.3.9.1 for Red Hat Enterprise Linux 5,6 and 7

 Greenplum 4.3 For CentOS 6.5 安装指南

2.3  master 上安装 Greenplum(只需 master 即可)

上传 Greenplum 的安装文件 greenplum-db-4.3.9.1-build-1-RHEL5-x86_64.zip 并解压缩。

# unzip ./greenplum-db-4.3.9.1-build-1-RHEL5-x86_64.zip

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

# chmod +x greenplum-db-4.3.9.1-build-1-RHEL5-x86_64.bin
# ./greenplum-db-4.3.9.1-build-1-RHEL5-x86_64.bin

期间需要修改默认安装目录,输入 /opt/greenplum/greenplum-db-4.3.9.1 之后即可安装成功,此时 master 上的 Greenplum 安装成功了。

但是之前我们都是以 root 身份安装的,所以要将安装目录下的文件的所有者,都修改为 gpadmin。

[root@mdw ~]# chown -R gpadmin:gpadmin /opt/greenplum

因为只在 master 上安装了 Greenplum,所以接下来要将安装包批量发送到每个 segment 上,才能算是整个集群完整安装了 Greenplum。

下面的操作都是为了连接所有节点,并将安装包发送到每个节点。

2.4  创建配置文件

[root@mdw ~]# su – gpadmin
[gpadmin@mdw ~]$ mkdir conf
[gpadmin@mdw ~]$ cd conf
[gpadmin@mdw conf]$ vi hostlist

mdw
sdw1
sdw2
sdw3

[gpadmin@mdw conf]$ vi seg_hosts

sdw1
sdw2
sdw3

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

hostlist 存储了所有节点的主机名,seg_hosts 存储了所有从节点的主机名。

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

2.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 之后先做一些其他的操作。

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

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

[gpadmin@mdw conf]$ cd /opt/greenplum/

打包:

[gpadmin@mdw greenplum]$ tar -cf gp.4.3.tar greenplum-db-4.3.9.1/

然后利用 gpscp 命令将这个文件复制到每一台机器上:

[gpadmin@mdw greenplum]$ gpscp -f /home/gpadmin/conf/seg_hosts gp.4.3.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.4.3.tar
[sdw3]
[sdw1]
[sdw2]

建立软链接

=> ln -s ./greenplum-db-4.3.9.1 greenplum-db
[sdw3]
[sdw1]
[sdw2]
=> ll(可以使用 ll 查看一下是否已经安装成功) => exit

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

3 初始化数据库

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

3.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

3.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

[gpadmin@mdw ~]$ source .bash_profile(让环境变量生效)

注意:PGPORT 指的是你安装 greenplum 数据库的端口号。

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

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=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

3.4  初始化数据库(只需 master 即可)

[gpadmin@mdw ~]$ gpinitsystem -c /home/gpadmin/conf/gpinitsystem_config -s sdw3

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

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

需要注意的是如果初始化失败,一定要认真查看这个日志文件,一味重复安装没有太大意义,重要的是要找到主要原因。

4 测试运行安装的 Greenplum 数据库

4.1  启动和停止数据库测试是否能正常启动和关闭

# gpstart
# gpstop

4.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(退出)

5 安装 pgadmin Ⅲ客户端

安装 pgadmin Ⅲ,使用该客户端,连接 greenplum 4.3 数据库

5.1  用户创建密码

postgres =# alter role gpadmin with password 'gpadmin';

5.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 中记录是被顺序读取的,所有记录的顺序是有象征性意义的。

通常前面的记录匹配更少的连接但要求较弱的认证,后面的记录匹配更多的连接但要求更严格的认证。

例如:允许 gpadmin 用户在 192.168.0.x 网段访问所有数据库,使用 md5 验证。

# vi $MASTER_DATA_DIRECTORY/pg_hba.conf

host     all         gpadmin         192.168.0.0/24         md5

在 master 重新加载 pg_hba.conf 文件,需要重启 Greenplum 数据库。

# gpstop –a
# gpstart –a

5.3  验证客户端能否连接数据库

# psql -h 192.168.1.171 -p 2345 -d postgres -U gpadmin -W
Password for user gpadmin: 

-h 192.168.1.171 是指定连接 master 的 ip 地址

-p 5432 是安装 greenplum 数据库时,设置的端口号,当前数据库端口号是 2345

-u gpadmin 是指定连接的用户名

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-11/136896.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计9635字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中