1.安裝依賴庫
全部節點執行
# 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 python-py gcc-c++ libevent-devel apr-devel libcurl-devel bzip2-devel libyaml-devel
easy_install pip
pip install paramiko
pip install psutil
pip install lockfile
2.修改內核參數
# vi /etc/sysctl.conf
#net.core.netdev_max_backlog = 2500->10000
#add by langke install greenplum
kernel.shmmni = 4096
kernel.sem = 50100 64128000 50100 1280
kernel.msgmni = 2048
net.ipv4.conf.all.arp_filter = 1
net.ipv4.netfilter.ip_conntrack_max = 655360
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_intvl = 7
vm.overcommit_memory = 2
fs.file-max = 7672460
fs.aio-max-nr = 1048576
上面這個內核參數設置以後影響elasticsearch進程(進程自動退出,報OOM:Native memory allocation (mmap) failed to map 11314593792 bytes for committing reserved memory,多是vm.overcommit_memory,參數影響)
kernel.shmmni = 4096
kernel.sem =250 32000 32 128
kernel.msgmni = 32768
net.ipv4.conf.all.arp_filter = 0
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_intvl = 75
vm.overcommit_memory = 0
fs.file-max = 7672460
fs.aio-max-nr = 1048576
# sysctl -p
受內核參數影響kafka java客戶端推送數據也受影響,soa_logs隊列推送很慢 ,內核參數一直調整無效,最終遷移kafka節點:因此內核參數最好仍是不要修改
# rm -f /etc/security/limits.d/90-nproc.conf
# vi /etc/security/limits.conf
* soft nproc 204800
* hard nproc 204800
* soft memlock unlimited
* hard memlock unlimited
設置塊設備預讀大小
/sbin/blockdev --setra 16384 /dev/sda1
/sbin/blockdev --setra 16384 /dev/sdb1
/sbin/blockdev --setra 16384 /dev/sdc1
/sbin/blockdev --setra 16384 /dev/sdd1
3.初始化安裝環境
#切換到hadoop用戶
su hadoop
master節點:
mkdir -p /data/disk1/gp/master
chown -R hadoop /data/disk1/gp/master
chmod 700 /data/disk1/gp/master
全部 segment 節點:
mkdir -p /data/disk1/gp/data
mkdir -p /data/disk2/gp/data
mkdir -p /data/disk3/gp/data
mkdir -p /data/disk4/gp/data
mkdir -p /data/disk1/gp/mirror
mkdir -p /data/disk2/gp/mirror
mkdir -p /data/disk3/gp/mirror
mkdir -p /data/disk4/gp/mirror
chown -R hadoop /data/disk1/gp/data
chmod -R 700 /data/disk1/gp/data
4.安裝:
./greenplum-db-4.3.9.1-build-1-rhel5-x86_64.bin
安裝到/opt/17173_install/greenplum-db-4.3.9.1
安裝完成
cd greenplum-db/bin
./pg_config
cd ..
cat greenplum_path.sh
添加到用戶的環境變量
cat greenplum_path.sh >> ~/.bash_profile
. ~/.bash_profile
建立主機文件,包括全部節點以及主節點自己
vi host
sea2
sea3
sea4
sea5
sea6
交換KEY,master 訪問全部的segment不須要輸入密碼,master pub拷貝到全部的segment authorized_keys,安裝過hadoop能夠略過
gpssh-exkeys -f ./host
安裝軟件到segment hosts
gpseginstall -f ./host -u hadoop
5.初始化數據庫
配置文件
cp docs/cli_help/gpconfigs/gpinitsystem_config ./
chmod 644 ./gpinitsystem_config
vi ./gpinitsystem_config
declare -a DATA_DIRECTORY=(/data/disk1/gp/data /data/disk2/gp/data /data/disk3/gp/data /data/disk4/gp/data)
MASTER_HOSTNAME=sea6
MASTER_DIRECTORY=/data/disk1/gp/master
MIRROR_PORT_BASE=50000
REPLICATION_PORT_BASE=41000
MIRROR_REPLICATION_PORT_BASE=51000
declare -a MIRROR_DATA_DIRECTORY=(/data/disk1/gp/mirror /data/disk2/gp/mirror /data/disk3/gp/mirror /data/disk4/gp/mirror)
DATABASE_NAME=sea
MACHINE_LIST_FILE=/opt/17173_install/greenplum-db/host_segment
編輯主機文件,不要包含master, standby,除非master,standby節點也須要當segment node使用.
vi host_segment
sea2
sea3
sea4
sea5
sea6
初始化數據庫
gpinitsystem -c ./gpinitsystem_config
6.增長standby
一個gp集羣只有一個master確定會讓人不放心,還好有備用,當master宕掉後,會自動啓用standby做爲master,下面來看一下standby怎麼添加
在standby服務器上執行,sea5做爲standby
mkdir /data/disk1/gp/master
chown hadoop /data/disk1/gp/master
在master服務器上執行
gpinitstandby -s sea5
中間輸入一次Y
7.增長mirror
mirror就是鏡像,也叫數據備份。mirror對於數據存儲來講很重要,由於咱們的服務器指不定何時出毛病,有mirror就好不少了,由於兩臺存儲節點同時宕掉的概率仍是很小的。若是前面在GP初始化文件裏忘記配置mirror了,請按照下面的方法添加
.bashrc和.bash_profile最後都添加下面兩行
source /opt/17173_install/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/disk1/gp/master/gpseg-1
設置完後記得source一下使其當即生效
gpaddmirrors -p 1000
運行過程當中須要輸入兩次mirror路徑:/data/disk1/gp/mirror
出現異常:
-gpaddmirrors failed. (Reason='FATAL: System was started in master-only utility mode - only utility mode connections are allowed
vi env_gp.sh
export MASTER_DATA_DIRECTORY=/data/disk1/master/gpseg-1
export PGHOST=127.0.0.1
export PGPORT=5432
export PGUSER=hadoop
export PGDATABASE=sea
. ./env_gp.sh
8.嘗試鏈接到postgres數據庫
psql -d postgres
postgres=# select datname,datdba,encoding,datacl from pg_database;
建立數據庫,建立表
createdb sea -E utf-8
psql -d sea
select version();
create table test01(id int primary key,col1 varchar(50));
insert into test01 select 1,'sea' ;
select * from test01;
9.建立用戶
CREATE ROLE user01 WITH LOGIN;
ALTER ROLE user01 WITH PASSWORD '111111';
GRANT ALL ON DATABASE sea TO user01;
取消受權:
REVOKE ALL ON DATABASE sea from user01;
CREATE USER user01 WITH PASSWORD '111111' NOSUPERUSER;
\du
CREATE ROLE users;
GRANT users TO user01;
GRANT ALL PRIVILEGES ON DATABASE sea TO user01;
psql: FATAL: no pg_hba.conf entry for host
修改:/data1/gpdata/master/gpseg-1/pg_hba.conf
host all all 10.5.15.222/32 trust
從新加載配置:select pg_reload_conf();
10.數據庫啓動關閉
gpstart
gpstop
gpstate
也能夠用gpstat來查看當前的狀態,此命令也是排錯時的必備工具
gpstat -e #查看mirror的狀態,咱們此次的案例沒有安裝mirror
gpstat -f #查看standby master的狀態
gpstat -s #查看整個GP羣集的狀態
gpstat -i #查看GP的版本
gpstat --help #幫助文檔,能夠查看gpstat更多用法,
2、GreenPlum安裝性能監控工具GPCCC(Greenplum Command Center Console)
1.performance monitor安裝
使用gpperfmon_install命令,Greenplum安裝完成後已經包含該命令,安裝後會創建名爲gpperfmon的數據庫,默認使用gpmon用戶。
gpperfmon_install --enable --password gpmon --port 5432
而後重啓數據庫,-r的含義是restart
gpstop -r
2.確認監控採集進程是否已經啓動
ps -ef|grep gpmmon|grep -v grep
#確認Performance Monitor數據庫寫入數據是否正常,檢查是否有記錄寫入
psql -d gpperfmon -c 'select * from system_now'
若是配置了master的standby,拷貝Master主機拷貝配置文件到Standby Master的相應目錄.
gpscp -h sea5 /data/disk1/gp/master/gpseg-1/pg_hba.conf =:$MASTER_DATA_DIRECTORY/
gpscp -h sea5 ~/.pgpass =:~/
3.安裝Greenplum Command Center Console
3.1安裝gpccc
./greenplum-cc-web-1.3.0.0-build-91-RHEL5-x86_64.bin
輸入performance monitor的安裝目錄如 /opt/17173_install/greenplum-cc-web-2.4.0
chown -R hadoop greenplum-cc-web-2.4.0
chown -R gpadmin:gpadmin greenplum-cc-web
gpccc和gpdb同樣,都會建立一個軟連接,分別是greenplum-db和greenplum-cc-web.
3.2設置環境變量
source greenplum-cc-web/gpcc_path.sh
或者vi ~/.bashrc ~/.bash_profile
source /opt/17173_install/greenplum-db/greenplum_path.sh
source /opt/17173_install/greenplum-cc-web/gpcc_path.sh
source ~/.bashrc
3.3 在全部主機安裝GPCCC
這裏的all_host文件就採用前面安裝GPDB的時候的全部節點的文件
gpccinstall -f /opt/17173_install/greenplum-db/host
#注意在全部機器上配置環境變量,或者使用gpscp 將一臺機器的文件copy到其餘機器
vi .bashrc
source /opt/17173_install/greenplum-cc-web/gpcc_path.sh
3.4 配置安裝詳細項
cd /opt/17173_install/greenplum-cc-web-2.4.0
gpcmdr --setup
Please enter a new instance name:輸入gpcc
Is the master host for the Greenplum Database remote? Yy|Nn (default=N):n
What would you like to use for the display name for this instance:gpcc
What port does the Greenplum Database use? (default=5432):回車
will you install workload manaager (default=N):Y
What port would you like the web server to use for this instance?回車
Do you want to enable SSL for the Web API Yy|Nn (default=N):n
Do you want to copy the instance to a standby master host Yy|Nn (default=Y): 沒有standby n
What is the hostname of the standby master host? [sea6]:回車
3.5 啓動及相關操做
啓動實例:
gpcmdr --start gpcc
查看端口狀態: lsof -i :28080
發現是lighttpd
4.相關注意事項
4.1重啓應用的時候,若是有其餘連接,能夠強制重啓:gpstop -M immediate
4.2 錯誤error:
1.no pg_hba.conf entry for host 「::1」, user 「gpmon」, database 「gpperfmon」, SSL off
解決:
vi pg_hba.conf增長:
host gpperfmon gpmon ::1/128 trust (此處的trust應該爲md5,不然後面會報錯)
從新加載配置:select pg_reload_conf();
ERROR: relation "gp_toolkit.__gp_log_master_ext" does not exist
報錯爲ERROR: relation "gp_toolkit.__gp_log_master_ext" does not exist,數據庫gppfermon中gp_toolkit schema中無內容,多是template0,1中的gp_toolkit內容丟失;沒辦法,手動補:
psql -f $GPHOME/share/postgresql/gp_toolkit.sql gpperfmon
3.登錄web提示:trust login is disabled.trust user gpmon is not allowed to login Command Center
描述:
用psql -d gpperfmon -U gpmon -W 輸入密碼能夠正常登錄
查看日誌:/home/greenplum-4.3-cc/instances/gpcc2/logs/gpmonws.log
修改pg_hba.conf將其中的trust修改成md5
source /usr/local/greenplum-db/greenplum_path.sh 不要寫到profile或者./bashrc文件中
由於該句會致使python環境變量的改變,導致yum不能正常使用,出現no module named yum問題
解決辦法:使用是直接運行不添加,或者新創建用戶中,在新用戶家目錄的bashrc文件中添加該環境變量,固然該用戶不能使用yum命令。
root用戶使用su -登入不帶環境變量