環境:centos6.5
軟件:/srv/greenplum-db-4.3.8.1-build-1-RHEL5-x86_64.zip
目錄規劃:安裝目錄/opt/greenplum ---所有
數據目錄/data/greenplum/gpmaster ---master節點
/data/greenplum/pri_data --- segment 節點主節點數據目錄
/data/greenplum/mri_data --- segment節點鏡像節點數據目錄
系統:關閉iptables selinux
注:greenplum各節點之間通信相對複雜,建議直接關閉iptables和selinux
資源規劃:192.168.3.82 --------GPMASTER
192.168.3.40 --------GPDATA1
192.168.3.41 --------GPDATA2
一.安裝依賴包(所有節點)
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-devel perl-ExtUtils* OpenIPMI-tools openldap openldap-devel logrotate gcc-c++ python-py
二.修改配置文件(所有節點)
# vi /etc/sysctl.conf
# vi /etc/security/limits.conf * soft nofile 131072 * hard nofile 131072 * soft nproc 131072 * hard nproc 131072 * soft memlock unlimited * hard memlock unlimited
service iptables stop chkconfig iptables off
setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g'/etc/selinux/config
修改磁盤IO調度算法
echo deadline > /sys/block/sda/queue/scheduler
echo deadline > /sys/block/sdb/queue/scheduler
修改磁盤塊預讀
blockdev --setra 16384 /dev/sd*
blockdev --setra 16384 /dev/dm-*
修改文件系統掛載選項
如果是ext4 ext4 mount option mount -o noatime,nodiratime,nobarrier,discard,nodelalloc,data=writeback /dev/sdb1 /data 如果是xfs rw,noatime,inode64,allocsize=16m 如果是ZFS set zfs:zfs_arc_max=0x600000000
字符集配置
sed -i 's/zh_CN.UTF-8/en_US.UTF-8/g' /etc/sysconfig/i18n
添加gpadmin用戶
groupadd -g 530 gpadmin
useradd -g 530 -u 530 -m -d /home/gpadmin -s /bin/bash gpadmin
passwd gpadmin
密碼輸入
目錄賦權
mkdir /opt/greenplum -p
mkdir /data/greenplum -p
chown -R gpadmin. /opt/greenplum
chown -R gpadmin. /data/greenplum
三:安裝步驟 1.解壓安裝包 #unzip /srv/greenplum-db-4.3.8.1-build-1-RHEL5-x86_64.zip #./greenplum-db-4.3.8.1-build-1-RHEL5-x86_64.bin兩步輸入是否接受license--------yes/opt/greenplum/ -------------軟件安裝在/opt/greenplum
############默認安裝在/usr/local/greenplum-db
安裝成功提示installaction complete
以下操作是在master節點的gpadmin用戶下操作
添加環境變量
#vim ~/.bash_profile
source /opt/greenplum/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/greenplum/gpmaster/gpseg-1
#source ~/.bash_profile
2.創建GP安裝配置文件並配置SSH互信
#mkdir /opt/greenplum/conf
#vim /opt/greenplum/conf/allnodes
GPMASTER
GPDATA1
GPDATA2
#vim /opt/greenplum/conf/nodes
GPDATA1
GPDATA2
#gpssh-exkeys -f /opt/greenplum/conf/allnodes
輸入gpadmin用戶會顯示ssh互信完成
#gpssh -f /opt/greenplum/conf/allnodes -e '' 回車即可進入交互性界面。
3.軟件分發
#cd /opt/greenplum/
#tar -zvcf gp.tar ./*
#gpscp -f /opt/greenplum/conf/nodes gp.tar =:/opt/greenplum
#gpssh -f /opt/greenplum/conf/nodes
=>cd /opt/greenplum
=>tar -xf gp.tar
創建數據目錄
#mkdir /data/greenplum/gpmaster
#gpssh -f /opt/greenplum/conf/nodes
=>mkdir /data/greenplum/pri_data
=>mkdir /data/greenplum/mri_data
4.檢查環境
#gpcheck -f /opt/greenplum/conf/allnodes -m GPMASTER -s GPDATA1
(1);greenplum對環境要求比較嚴格。可能會報出IO調度策略、系統參數修改、 ntp時間同步等問題。測試環境忽略了。生產環境部署一定注意
(2);如果出現某個segment節點不通,檢查所有環境的hosts配置、防火牆、ssh互信
5.初始化greenplum的配置文件
模板在$GPHOME/docs/cli_help/gpconfigs下 可以找到gpinitsystem_config
vim /opt/greenplum/conf/initgp_config
# FILE NAME: initgp_config
# Configuration file needed by the gpinitsystem
################################################
#### REQUIRED PARAMETERS
################################################
####數據庫代號
ARRAY_NAME="Greenplum"
####segment的名稱前綴
SEG_PREFIX=gpseg
#### primary segment 起始地端口號
PORT_BASE=33000
#### primary segment數據目錄
declare -a DATA_DIRECTORY=(/data/greenplum/pri_data /data/greenplum/pri_data)
#### master所在機器的hostname
MASTER_HOSTNAME=GPMASTER
#### master節點數據目錄
MASTER_DIRECTORY=/data/greenplum/gpmaster
####master節點的端口
MASTER_PORT=2345
#### Shell utility used to connect to remote hosts.
TRUSTED_SHELL=/usr/bin/ssh
#### Maximum log file segments between automatic WAL checkpoints.
CHECK_POINT_SEGMENTS=8
#### Default server-side character set encoding.
ENCODING=UNICODE
################################################
#### OPTIONAL MIRROR PARAMETERS
################################################
#### mriior節點起始端口
MIRROR_PORT_BASE=43000
#### primary segment 主備起始端口
REPLICATION_PORT_BASE=34000
#### mriior segment 主備起始端口
MIRROR_REPLICATION_PORT_BASE=44000
#### mriior egment數據目錄
declare -a MIRROR_DATA_DIRECTORY=(/data/greenplum/mri_data /data/greenplum/mri_data)
6.初始化數據庫
gpinitsystem -c /opt/greenplum/conf/initgp_config -h /opt/greenplum/conf/nodes -B 8
(1):如果出錯時在初始化segment節點。那麼就還是環境問題。檢查各個節點的環境變量、hosts文件等
(2):如果報錯爲gpstop失敗。傳參類型的錯誤,但是master節點的pg進程已經啓動。找到master的postgresql.conf註釋掉端口前面的#
7.啓動關閉
gpstart -a 啓動整個集羣
gpstart -m 啓動master節點
gpstop -a 關閉整個集羣
gpstop -m 關閉master節點
gpstop -u 不關閉但是重新加載配置文件
8.修改參數
shared_buffers 建議由操作系統的15%慢慢往上加
work_mem 建議總內存的5%
temp_buffers 建議session中自己設置