Deepgreen分散式安裝文件
Deepgreen分散式安裝文件
環境準備
1、安裝VMware虛擬機器軟體,然後在VMware安裝三臺Linux虛擬機器(使用centos7版本)
2、使用的虛擬機器如下:
192.168.136.155 mdw
192.168.136.156 sdw1
192.168.136.157 sdw2
2.1三臺虛擬機器分別修改主機名為:mdw/sdw1/sdw2
[[email protected] ~]# hostnamectl set-hostname mdw
2.2三臺虛擬機器分別新增主機名和ip對應關係
2.3三臺虛擬機器進行時間同步操作
[[email protected] ~]# yum install ntp
[[email protected] ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[[email protected] ~]# ntpdate pool.ntp.org
[[email protected] ~]# systemctl start ntpd
[[email protected] ~]# systemctl enable ntpd
2.4三臺虛擬機器安裝工具(可選)
[[email protected] ~]# yum install net-tools –y
[[email protected] ~]# yum install perl
2.5三臺虛擬機器關閉防火牆
[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# systemctl disable firewalld
2.6三臺虛擬機器修改selinux的值為disabled
[[email protected] ~]# vi /etc/selinux/config
2.7三臺虛擬機器修改關於linux系統推薦配置
[[email protected] ~]# vi /etc/sysctl.conf
kernel.shmmax = 2000000000
kernel.shmmni = 4096
kernel.shmall = 16000000000
kernel.sem = 1000 2048000 400 8192
xfs_mount_options = rw,noatime,inode64,allocsize=16m
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
sysctl -p生效
2.8三臺虛擬機器更改檔案限制
[[email protected] ~]# vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
2.9磁碟io排程演算法有多種:CFQ,AS,deadline推薦deadline
[[email protected] ~]# grubby --update-kernel=ALL --args="elevator=deadline"
[[email protected] ~]#/sbin/blockdev --getra /dev/sda預讀塊預設大小為8192
[[email protected] ~]#/sbin/blockdev --setra 16384 /dev/sda設定預讀塊大小16G
上述完成之後,三臺機器均需重啟系統,然後再開始進入資料庫安裝操作
3、資料庫安裝
3.1資料庫檔案deepgreendb.16.32.rh6.x86_64.180912.bin下載並上傳到mdw主機上
http://vitessedata.com/deepgreen-db https://www.centos.org/download/
mdw主機建立gpadmin使用者
[[email protected] local]# useradd gpadmin
[[email protected] local]# passwd gpadmin
mdw主機賦許可權解壓bin檔案
[[email protected] local]# chmod u+x ./deepgreendb.16.32.rh6.x86_64.180912.bin
[[email protected] local]# ./deepgreendb.16.32.rh6.x86_64.180912.bin
安裝後的整體目錄如下:
為gpadmin賦安裝後的整體目錄許可權
[[email protected] deepgreendb]# chown -R gpadmin:gpadmin /usr/local/deepgreendb(軟連線)
[[email protected] deepgreendb]# source /usr/local/deepgreendb/greenplum_path.sh
3.2建立一個檔案:hostfile_exkeys
[[email protected] deepgreendb]# vi hostfile_exkeys
mdw
sdw1
sdw2
裡面內容與etc/hosts節點的內容一樣
3.3建立節點伺服器間的信任
[[email protected] deepgreendb]# gpssh-exkeys -f hostfile_exkeys
按照提示輸入root密碼,記住這一步不能輸入gpadmin的密碼,因為批量安裝時需要在/usr/local下建立目錄,需要root許可權
3.4批量安裝
[[email protected] deepgreendb]# gpseginstall -f hostfile_exkeys -u gpadmin -p 123456
這一步其實就是將master上的greenplum打包通過scp命令傳到hostfile_exkeys中的主機上,並賦予目錄gpadmin的許可權
20181031:11:31:26:011120 gpseginstall:mdw:root-[INFO]:-SUCCESS -- Requested commands completed
3.5檢查批量安裝情況
[[email protected] deepgreendb]# gpssh -f hostfile_exkeys -e ls -l $GPHOME
返回結果中各節點目錄一致則代表批量安裝成功
3.6上述步驟完成後,建立Master主資料的儲存區域
[[email protected] deepgreendb]# mkdir -p /data/master
[[email protected] deepgreendb]# chown gpadmin:gpadmin /data/master
[[email protected] deepgreendb]# vi hostfile_gpssh_segonly
sdw1
sdw2
只含有segment節點
vi hostfile_gpssh_segonly這步主要是為了使用gpssh工具建立資料目錄,單機安裝一般手動
3.7建立segment主機上建立主資料和映象資料目錄並賦許可權
[[email protected] deepgreendb]# source greenplum_path.sh
[[email protected] deepgreendb]# gpssh -f hostfile_gpssh_segonly -e 'mkdir -p /data1/primary'
[sdw1] mkdir -p /data1/primary
[sdw2] mkdir -p /data1/primary
[[email protected] deepgreendb]# gpssh -f hostfile_gpssh_segonly -e 'mkdir -p /data2/primary'
[sdw1] mkdir -p /data2/primary
[sdw2] mkdir -p /data2/primary
[[email protected] deepgreendb]# gpssh -f hostfile_gpssh_segonly -e 'mkdir -p /data2/mirror'
[sdw1] mkdir -p /data2/mirror
[sdw2] mkdir -p /data2/mirror
[[email protected] deepgreendb]# gpssh -f hostfile_gpssh_segonly -e 'mkdir -p /data1/mirror'
[sdw1] mkdir -p /data1/mirror
[sdw2] mkdir -p /data1/mirror
[[email protected] deepgreendb]# gpssh -f hostfile_gpssh_segonly -e 'chown -R gpadmin:gpadmin /data1'
[sdw1] chown -R gpadmin:gpadmin /data1
[sdw2] chown -R gpadmin:gpadmin /data1
[[email protected] deepgreendb]# gpssh -f hostfile_gpssh_segonly -e 'chown -R gpadmin:gpadmin /data2'
[sdw1] chown -R gpadmin:gpadmin /data2
[sdw2] chown -R gpadmin:gpadmin /data2
[[email protected] deepgreendb]#
3.8建立gp初始化檔案
[[email protected] deepgreendb]# su - gpadmin
[[email protected] deepgreendb]$ vi hostfile_gpinitsystem
sdw1
sdw2
從安裝軟體的模板中拷貝一份gpinitsystem_config檔案到當前目錄:
[[email protected] deepgreendb]$ cp docs/cli_help/gpconfigs/gpinitsystem_config .
修改gpinitsystem_config設定segment個數
declare -a DATA_DIRECTORY=(/data1/primary /data2/primary)
[[email protected] deepgreendb]$ vi ~/.bashrc
source /usr/local/deepgreendb/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/master/gpseg-1
export PGPORT=5432
export PGUSER=gpadmin
export PGDATABASE=test
[[email protected] deepgreendb]$ source ~/.bashrc
完成上述步驟執行初始化工具初始化資料庫
[[email protected] deepgreendb]$ gpinitsystem -c gpinitsystem_config -h hostfile_gpinitsystem -B 8
註釋:由於我是36個segement所以並行開的-B 8
安裝成功,進行操作即可!
[[email protected] deepgreendb]$ psql -d postgres
psql (8.2.15)
Type "help" for help.
postgres=#
也可以使用如下初始方式:
[[email protected] deepgreendb]$ gpinitsystem -c gpinitsystem_config -h hostfile_gpinitsystem -s sdw2 -S
會出錯,因為沒有足夠的主機無法形成spread模式,去掉-S
由於選擇sdw2為standby,需要在sdw2節點上建立資料夾
[[email protected] primary]# mkdir -p /data/master
[[email protected] primary]# chown gpadmin:gpadmin /data/master
======================================================================
關於映象,有2種方式開啟Mirror:
1. 在GP資料庫安裝的時候,開啟Mirror設定
gpinitsystem -c gpinitsystem_config -h hostfile_segonly -s smdw1 -S
-s 代表standby
-S代表spread模式
2. 在已建好的資料庫中,使用命令gpaddmirrors和gpinitstandby來開啟Mirror
=======================關於節點分佈模式:grouped、spread==============================
1.greenplum的兩種節點分佈模式
①grouped mirror模式:
(grouped模式,主機的mirror節點全部放在下一個主機上)
②spread mirror模式:
(spread模式,主機的第一個mirror在下個主機,第二個mirror在次下個主機,第三mirror在次次下個主機....)
2.初始化的mirror模式:
1)初始化為grouped模式
在部署配置gp的過程中
執行初始化命令:gpinitsystem ,預設的節點分佈方式為grouped
[[email protected] ~]$gpinitsystem -c gpinitsystem_config -h seg_hosts -s standby
2)在初始化時改為spread模式
在部署配置gp的過程中
執行初始化命令:gpinitsystem加上–S,節點分佈方式為spread
[[email protected] ~]$gpinitsystem -c gpinitsystem_config -h seg_hosts -s standby –S
3)主機數量少的情況(無法改設spread)
假設segment主機為兩臺,節點數為2;執行初始化命令gpinitsystem加上–S是無法形成spread模式,並且會在執行初始化命令之後報錯,原因由於主機個數沒有比primary節點數大1。
3.對於兩種模式,新增segment主機節點的情況:
(排除自行修改gpexpand_inputfile_xxxxx_xxxx檔案的情況,可以自行新增主機或節點)
1)grouped模式
新增的主機數必須大於等於2,確保新增primary和mirror在不同的機器上。
2)spread模式
新增主機數至少比每臺主機上的primary數大1,確保mirror平均分配在其他主機上(參照圖例理解)。
4.兩種模式的優缺:
①grouped mirror:
如果其中一臺掛掉,那麼擁有該主機mirror的機器負載加重一倍;在segment主機數非常多的情況下,至少允許兩臺主機掛掉
②spread mirror:
如果其中一臺掛掉,那麼擁有該主機mirror的機器負載均衡,沒有grouped的壓力大;在segment主機數非常多的情況下,只可以掛掉一臺主機
(一般情況,greenplum同時宕機兩臺概率很低,宕機一臺概率較高,建議spread)
==================================================================================
Rebalancing a Table重新平衡一張表
CREATE TABLE sales_temp (LIKE sales) DISTRIBUTED BY (date, total, customer);
INSERT INTO sales_temp SELECT * FROM sales;
DROP sales;
ALTER TABLE sales_temp RENAME TO sales;
============================================================================
https://yq.aliyun.com/articles/177
該連結是關於如何擴充套件segment的文件寫的非常詳細,個人也是根據此連結操作成功的。
擴容回滾
如果在擴容過程中,報錯,需先啟動GP master node,然後rollback再啟動GP
gpstart -m
gpexpand –r –D dw
gpstart
======================================================================
linux nmon的安裝及使用:
https://blog.csdn.net/u010798968/article/details/74932124
1.下載nmon壓縮包:
http://nmon.sourceforge.net/pmwiki.php?n=Site.Download
根據系統的髮型版本及CPU位數選擇相應的壓縮包下載,如筆者的系統發行版本為:紅帽子7.3.1611,64位:
所以選擇的版本為:nmon16g_x86.tar.gz,
可以下載到本地,再ftp傳到linux伺服器上,也可以直接在linux伺服器上wget 下載連結。
2.下載後解壓縮,有適用於不同linux發行版本的檔案,根據自身系統選擇不同檔案,這裡筆者選擇的是nmon16g_x86_rhel72:
根據自身需求重新命名及賦權,這裡筆者重新命名為nmon,賦755許可權:
執行nmon:./nmon,進入nmon實時監控頁,按c檢視CPU使用資訊,按m檢視記憶體使用資訊,按n檢視網路使用資訊,如下圖:
更多命令按h檢視幫助資訊。
3.採集系統性能資訊,並生成報告
a.執行./nmon -s3 -c60 -f -m ./report,-s3為每3s收集一次效能資訊,-c60為收集60次,-f為生成的檔名包含該檔案建立時間,-m ./report為指定測試報告儲存路徑,如下圖:
執行完收集資訊的命令後,生成了以hostname+建立年月+建立時間的檔案,並且可以看到有個nmon的後臺程序,即為收集伺服器效能資訊的程序,直到60次收集執行完之後,該程序才會結束。
b.下載 nmon analyser分析工具,該工具可以將上面生成的.nmon檔案轉化為圖表,更為直觀。
下載地址:https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power%20Systems/page/nmon_analyser
下載完解壓可以看到有兩個檔案:
開啟 nmon analyser v51_2.xlsm檔案:
將linux伺服器上的報告.nmon檔案down下來,點選上圖中的Analyze nmon data按鈕,選擇剛剛down下來的檔案,生成視覺化圖表,如下圖:
另外,如果有同學點選Analyze nmon data按鈕後彈出“巨集不可用”的提示,Excel可自行百度如何開啟巨集,wps個人版則需要下載一個外掛,筆者放到了網盤裡面:
http://pan.baidu.com/s/1o8iFk6m,可自行下載,下載之後解壓,雙擊vba6chs.msi安裝即可,安裝好之後重啟wps,即可正常使用巨集,並生成視覺化圖表。