1 準備虛擬機
安裝VMWare Workstation,windows下安裝的,比較簡單,不再贅述。
2 準備CentOS虛擬機環境
greenplum依賴的軟件比較新,因此這裏選擇的是CentOS 7,爲了降低一些不必要的依賴缺乏問題,選擇的是GUI服務器,安裝了基本開發軟件及GNOME。
2.1 下載CentOS
wget http://mirrors.163.com/centos/7/isos/x86_64/CentOS-7-x86_64-Everything-1804.iso
2.2 安裝CentOS 7
使用VMWare Workstation安裝CentOS 7,按照提示操作即可,操作比較簡單,注意一些版本的兼容性問題,這裏爲了方便給一些低版本使用,選擇的是6.5版本。
2.3 配置虛擬機網絡
由於greenplum需要通過網絡進行連接,以及方便主機連接到虛擬機內進行調試,這裏需要保證虛擬機和宿主機網絡互通。
網絡配置,VMWare Workstation相對於VirtualBox來說,網絡配置要容易一些,爲了方便後續主機和虛擬機互聯,這裏選擇的是橋接網絡。
- 需要注意的是,橋接時,選擇正確的網卡。
- 對於非DHCP的網絡,在/etc/sysconfig/network-scripts/ifcfg-xxxx中進行網絡配置,需要保證配置的網絡IP與主機在同一網段內,網關和子網掩碼也要一致。
- 上面說的xxxx爲你需要配置的虛擬機網卡名稱,進入CentOS內,執行ifconfig中看到的。
2.4 準備用戶
一般來說,爲了系統安全,不建議使用root用戶來安裝各類軟件,這裏創建一個用戶gp,用來方便操作greenplum。
爲了解決環境依賴問題,用戶可能需要sudo權限,下面創建了gp用戶之後,將其加入sudo列表。
useradd gp
–添加用戶
visudo
–操作方法類似與vim
–仿照root ALL=(ALL) ALL這一行,然後添加一行,將root改成自己要添加的用戶名即可,這裏是gp
3 準備greenplum執行程序環境
3.1 下載源代碼
git clone https://github.com/greenplum-db/gpdb.git
3.2 編譯前環境依賴準備
安裝軟件遇到最多的大概就是軟件依賴問題了,各種軟件依賴、版本要求等等問題不勝其擾,這一點greenplum已經做了相應的工作,在源代碼內有各種linux系統的腳本,方便用戶解決依賴關係。
這裏需要使用的是README.CentOS.bash,進入代碼內該文件所在文件夾後,執行下面的程序。
./README.CentOS.bash
上面的腳本基本上可以滿足大多數用戶的需求,偶爾會有一些問題。
- pip版本較低
sudo pip install --upgrade pip
- python模塊默認版本的問題,會報一些錯誤,例如
conan 1.4.1 Required pylint < 1.9.0, >=1.8.1
。這樣的錯誤一般安裝了對應的模塊版本即可。sudo pip install pylint==1.8.1
sudo pip install conan==1.4.1
3.3 配置
./configure --enable-debug --disable-orca --with-perl --with-python --with-libxml --prefix=/home/gp/greenplum/
爲了方便調試,上面加入了enable-debug,外掛優化器orca依賴的東西比較多,暫時沒有配置進去。
3.4 編譯
make
有時可能會報錯,#include
3.5 安裝
make install
–這裏在./configure
中配置的路徑gp用戶具備權限,因此不用在前面加入sudo
4 準備MPP環境
爲了簡單起見,這裏使用了greenplum官網對於ubuntu的單個master、兩個segment的配置方案。
cd /home/gp/greenplum
. greenplum_path.sh
cp docs/cli_help/gpconfigs/gpinitsystem_singlenode .
vim hostlist_singlenode
–在當前路徑配置hostlist_singlenode文件,裏面寫入主機名稱,這裏爲greenplum
vim gpinitsystem_singlenode
–配置初始化所需的一些路徑等
修改以下內容:
--hostlist_singlenode內寫入主機名,此處是greenplum
MACHINE_LIST_FILE=./hostlist_singlenode
--兩個segment的數據存儲路徑
declare -a DATA_DIRECTORY=(/home/gp/greenplum/gpdata1 /home/gp/greenplum/gpdata2)
--master主機名
MASTER_HOSTNAME=greenplum
--master數據存儲路徑
MASTER_DIRECTORY=/home/gp/gpmaster
需要保證上面配置的路徑真實存在,且具備權限,否則後面的執行會報錯。
gpssh-exkeys -f hostlist_singlenode
–配置ssh key交換
爲了簡單起見,初始化之前需要進行的系統配置被略過。
gpinitsystem -c gpinitsystem_singlenode
–初始化gp系統
創建數據庫
createdb demo
連接數據庫
psql demo