1. 程式人生 > >Deepgreen分散式安裝文件

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對應關係

[[email protected]

~]# vi /etc/hosts

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排程演算法有多種:CFQASdeadline推薦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,即可正常使用巨集,並生成視覺化圖表。