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溝通聯系。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM