greenplum安裝部署
環境:centos7.5 64位作業系統
[[email protected] ~]$ cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[[email protected] ~]$ uname -a
Linux mdw 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
安裝前準備
(1)關閉selinux
sudo sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
(2)關閉防火牆及防火牆相關操作
firewall-cmd -stat //檢視防火牆狀態,狀態為running或not running Systemctl stop firewalld.service //關閉防火牆 systemctl disable firewalld.service //禁止firewall開機啟動 systemctl enable firewalld.service //允許firewall開機啟動 systemctl disable firewalld.service //禁止firewall開機啟動 systemctl enable firewalld.service //允許firewall開機啟動
(3)修改完後重啟
(4)開啟防火牆預留greenplum資料庫埠
firewall-cmd --zone=public --permanent --add-port=5432/tcp
(5)過載伺服器
firewall-cmd –reload
(6)檢測埠是否開啟
firewall-cmd --query-port=5432/tcp //開啟為yes,否則為firewalld is not running
(7)進行共享記憶體與網路引數的配置
sudo vim /etc/sysctl.conf在開啟的檔案中新增如下資訊 net.ipv4.ip_forward = 0 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 1 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.sem = 250 64000 100 512 kernel.shmmax = 500000000 kernel.shmmni = 4096 kernel.shmall = 4000000000 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_max_syn_backlog = 4096 net.core.netdev_max_backlog= 10000 vm.overcommit_memory = 2 net.ipv4.conf.all.arp_filter = 1
(8)在/etc/security/limits.conf中新增限制引數
* soft nofile 65536 //可開啟的檔案描述符最大數(軟限制)
* hard nofile 65536 //可開啟的檔案描述符最大數(硬限制)
* soft nproc 131072 //單個使用者可用的最大程序數量(軟限制)
* hard nproc 131072 //單個使用者可用的最大程序數量(硬限制)
(9)重啟系統使得配置生效
sysctl -p
(10)安裝greenplum
方法一:原始碼安裝(原始碼安裝的過程中需要不斷的安裝相應依賴包)
git clone https://github.com/greenplum-db/gpdb
make
make check
make install
方法二:軟體包安裝
在官方下載相應的安裝軟體包https://network.pivotal.io/解壓安裝到具體的路徑中,安裝完成後如下圖所示:
單機模式配置
在當前伺服器上面配置一個master一個segment一個segmentmirror
(1)配置host解析
vim /etc/hosts //新增以下內容
IP mdw sdw //IP為當前伺服器的IP,本伺服器使用的位192.168.2.147
(2)建立greenplum資料的管理賬戶和使用者組gpadmin
groupadd gpadmin
useradd -g gpadmin gpadmin
passwd gpadmin //設定使用者密碼
(3)修改greenplum安裝目錄的使用者和使用者組
chown -R gpadmin /usr/local/Greenplum-db-5.11.0
chgrp -R gpadmin /usr/local/Greenplum-db-5.11.0
(4)切換到gpadmin賬戶,並在家目錄下面建立master和segment的資料存放目錄
mkdir -p /home/gpadmin/masterdata
mkdir -p /home/gpadmin/segmentdata
mkdir -p /home/gpadmin/segmentmirror
(5)建立包含所有主機名的檔案
vim /home/gpadmin/all_host //在檔案中新增以下內容
mdw
sdw
(6)建立包含segment主機名的檔案
vim /home/gpadmin/seg_host //在檔案中新增以下內容
sdw
(7)將主機名修改為mdw
先執行:hostnamectl set-hostname "mdw"
在執行:hostname mdw
在/etc/sysconfig/network中新增mdw
(8)將MASTER_DATA_DIRECTORY加入到Master主機環境,修改gpadmin的.bashrc檔案
if [ -f /etc/bashrc ]; then //防止家目錄的消失
. /etc/bashrc
fi
export MASTER_DATA_DIRECTORY=/home/gpadmin/masterdata/gpseg-1
source /usr/local/greenplum-db-5.11.0/greenplum_path.sh
(9)將機器中的Python庫全部複製到greenplum資料庫的lib庫目錄下,這樣做的原因是防止在執行gp相關的命令時出現各種各樣的儲存資訊
\cp -R -f /usr/lib64/python2.7/site-packages/ /usr/local/greenplum-db-5.11.0/lib/python
(10)編輯greenplum初始化配置檔案
ARRAY_NAME="EMC Greenplum DW"
SEG_PREFIX=gpseg
PORT_BASE=33000
declare -a DATA_DIRECTORY=(/home/gpadmin/segmentdata)
MASTER_HOSTNAME=mdw
MASTER_DIRECTORY=/home/gpadmin/masterdata
MASTER_PORT=5432
MACHINE_LIST_FILE=/home/gpadmin/seg_hosts
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UNICODE
MIRROR_PORT_BASE=43000
REPLICATION_PORT_BASE=34000
MIRROR_REPLICATION_PORT_BASE=44000
declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/segmentmirror)
(11)建立免密登入,免去登入密碼的麻煩,執行命令出現報錯時,返回到(8)檢查配置的路徑
gpssh-exkeys -f /home/gpadmin/all_hosts
(12)初始化資料庫(會出現很多各種錯誤)
gpinitsystem -c /home/gpadmin/gpinitsystem_config
(13)執行完成功後會有兩個成功提示,然後在執行gpstop看是否成功
叢集擴充套件
將當前伺服器修改為一個master三個segment
(1)配置host解析
vim /etc/hosts //新增以下內容
IP mdw sdw1 sdw2 sdw3 //IP為當前伺服器的IP,本伺服器使用的位192.168.2.147
(2)建立greenplum資料的管理賬戶和使用者組gpadmin(如果使用者已存在則不需要)
groupadd gpadmin
useradd -g gpadmin gpadmin
passwd gpadmin //設定使用者密碼
(3)修改greenplum安裝目錄的使用者和使用者組(許可權存在時不需要)
chown -R gpadmin /usr/local/Greenplum-db-5.11.0
chgrp -R gpadmin /usr/local/Greenplum-db-5.11.0
(4)切換到gpadmin賬戶,並在家目錄下面建立master和segment的資料存放目錄
mkdir -p /home/gpadmin/masterdata
mkdir -p /home/gpadmin/segmentdata1
mkdir -p /home/gpadmin/segmentdata2
mkdir -p /home/gpadmin/segmentdata3
(5)建立包含所有主機名的檔案
vim /home/gpadmin/all_host //在檔案中新增以下內容
mdw
sdw1
sdw2
sdw3
(6)建立包含segment主機名的檔案
vim /home/gpadmin/seg_host //在檔案中新增以下內容
sdw1
sdw2
sdw3
(7)將主機名修改為mdw(若已經修改過則這步不在需要)
先執行:hostnamectl set-hostname "mdw"
在執行:hostname mdw
在/etc/sysconfig/network中新增mdw
(8)將MASTER_DATA_DIRECTORY加入到Master主機環境,修改gpadmin的.bashrc檔案(若已經修改過則這步不在需要)
if [ -f /etc/bashrc ]; then //防止家目錄的消失
. /etc/bashrc
fi
export MASTER_DATA_DIRECTORY=/home/gpadmin/masterdata/gpseg-1
source /usr/local/greenplum-db-5.11.0/greenplum_path.sh
(9)將機器中的Python庫全部複製到greenplum資料庫的lib庫目錄下,這樣做的原因是防止在執行gp相關的命令時出現各種各樣的儲存資訊(若已經複製過則這步不在需要)
\cp -R -f /usr/lib64/python2.7/site-packages/ /usr/local/greenplum-db-5.11.0/lib/python
(10)編輯greenplum初始化配置檔案
ARRAY_NAME="EMC Greenplum DW"
SEG_PREFIX=gpseg
PORT_BASE=33000
declare -a DATA_DIRECTORY=(/home/gpadmin/segmentdata1 /home/gpadmin/segmentdata2 /home/gpadmin/segmentdata2) //多個segment直接進行拼接
MASTER_HOSTNAME=mdw
MASTER_DIRECTORY=/home/gpadmin/masterdata
MASTER_PORT=5432
MACHINE_LIST_FILE=/home/gpadmin/seg_hosts
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UNICODE
(11)建立免密登入,免去登入密碼的麻煩,執行命令出現報錯時,返回到(8)檢查配置的路徑,如果已經配置過則需要將原來配置的資訊刪除重新生成新的配置資訊
gpssh-exkeys -f /home/gpadmin/all_hosts
(12)初始化資料庫(會出現很多各種錯誤)
gpinitsystem -c /home/gpadmin/gpinitsystem_config
(13)執行完成功後會有兩個成功提示,然後在執行gpstop看是否成功