環境: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
#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
=>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%慢慢往上加