Greenplum安裝總結
一、環境說明
服務器centos7 4台,一台Master節點,三台Segment節點:
mdw 192.168.43.21 (master節點)
sdw1 192.168.43.22 (segment節點,包含兩個primary segment,兩個mirror segment)
sdw2 192.168.43.23 (segment節點,包含兩個primary segment,兩個mirror segment)
sdw3 192.168.43.24 (segment節點,包含兩個primary segment,兩個mirror segment)
GP版本: greenplum-db-5.7.1-rhel7-x86_64
安裝包下載(官網):https://network.pivotal.io/products/pivotal-gpdb/
源碼都在github上,也可自行編譯源碼安裝:https://github.com/greenplum-db/gpdb
二、安裝前服務器准備
(1) 關閉防火牆
啟動: systemctl start firewalld
關閉: systemctl stop firewalld
查看狀態: systemctl status firewalld
開機禁用 : systemctl disable firewalld
開機啟用 : systemctl enable firewalld
(2)配置hosts
/ect/hosts:
192.168.43.21 mdw
192.168.43.22 sdw1
192.168.43.23 sdw2
192.168.43.24 sdw3
確保所有機器ping所有的hostname都是通的
(3)修改內核
/etc/sysctl.conf 中追加
kernel.shmmax = 500000000 kernel.shmmni = 4096 kernel.shmall = 4000000000 kernel.sem = 500 1024000 200 4096 kernel.sysrq = 1 kernel.core_uses_pid = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.msgmni = 2048 net.ipv4.tcp_syncookies = 1 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 = 10000 65535 net.core.netdev_max_backlog = 10000 net.core.rmem_max = 2097152 net.core.wmem_max = 2097152 vm.overcommit_memory = 2 vm.swappiness = 10 vm.dirty_expire_centisecs = 500 vm.dirty_writeback_centisecs = 100 vm.dirty_background_ratio = 0 vm.dirty_ratio=0 vm.dirty_background_bytes = 1610612736 vm.dirty_bytes = 4294967296
sysctl -p
(4)修改文件打開限制
vi /etc/security/limits.conf
* soft nofile 65536 * hard nofile 65536 * soft nproc 131072 * hard nproc 131072
(5)創建用戶和用戶組
groupadd -g 530 gpadmin useradd -g 530 -u530 -m -d /home/gpadmin -s /bin/bash gpadmin chown -R gpadmin:gpadmin /home/gpadmin/ passwd gpadmin
(6)創建安裝目錄,並賦權限
mkdir /opt/greenplum chown -R gpadmin:gpadmin /opt/greenplum/
三、安裝
(1) 上傳安裝文件到主節點
greenplum-db-5.7.1-rhel7-x86_64.zip 上傳到/home/pgadmin 下並解壓
(2)安裝
./greenplum-db-5.7.1-rhel7-x86_64.bin
(安裝過程選擇安裝目錄:/opt/greenplum/greenplum-db-5.7.1/)
安裝成功后如下:
安裝完成后應用下環境變量:
source /opt/greenplum/greenplum-db/greenplum_path.sh
(3)配置hostlist文件記錄所有節點,seg_hosts文件只記錄segment節點
[gpadmin@mdw ~]$ cat hostlist mdw sdw1 sdw2 sdw3 [gpadmin@mdw ~]$ cat seg_hosts sdw1 sdw2 sdw3
(4)gpssh-exkeys 打通服務器,即服務器間免密碼登陸
gpssh-exkeys -f hostlist
打通后就可以使用gpssh命令對所有節點進行批量操作:
[gpadmin@mdw ~]$ gpssh -f hostlist => pwd [sdw3] /home/gpadmin [sdw1] /home/gpadmin [sdw2] /home/gpadmin [ mdw] /home/gpadmin
(5)把主節點安裝好的程序壓縮分發到每個子節點
tar -cf gp5.7.tar greenplum-db-5.7.1/ #壓縮 gpscp -f /home/gpadmin/hostlist gp5.7.tar =:/opt/greenplum/ #分發
(6)批量解壓文件
=> tar -xf gp5.7.tar =>ln -s /opt/greenplum/greenplum-db-5.7.1 /opt/greenplum/greenplum-db #建立軟鏈接
(7)創建數據庫數據目錄
#MASTER => mkdir -p /home/gpadmin/gpdata/gpmaster #PRIMARY => mkdir -p /home/gpadmin/gpdata/gpdatap1 => mkdir -p /home/gpadmin/gpdata/gpdatap2 #MIRROR => mkdir -p /home/gpadmin/gpdata/gpdatam1 => mkdir -p /home/gpadmin/gpdata/gpdatam2
(8)配置 .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 #默認進入的db
source .bash_profile
(9)配置初始化配置文件,模板:/opt/greenplum/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config
可以根據模板修改,我的gpinit_config如下:
ARRAY_NAME="Greenplum" SEG_PREFIX=gpseg PORT_BASE=40000 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 CHECK_POINT_SEGMENTS=8 ENCODING=UNICODE MIRROR_PORT_BASE=50000 REPLICATION_PORT_BASE=41000 MIRROR_REPLICATION_PORT_BASE=51000 declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatam1 /home/gpadmin/gpdata/gpdatam2) MACHINE_LIST_FILE=/home/gpadmin/seg_hosts
(10)初始化數據庫
gpinitsystem -c /home/gpadmin/gpinit_config -s sdw3
其中sdw3是指master的standby(備份)所在的節點,書上和網上的一些資料都將standby放在最后一個節點,可能是約定俗成
初始化根據腳本提示操作即可,如果上面有一些配置有問題,gpinitsystem就不能成功,日志在/home/gpadmin/gpAdminLogs中,認真查看日志,一味重復安裝無意義
(11)測試驗證數據庫
登陸默認數據庫postgres
[gpadmin@mdw gpAdminLogs]$ psql -d postgres psql (8.3.23) Type "help" for help. postgres=#
至此GP數據庫集群就安裝成功了