一、安裝環境准備
1、磁盤環境准備
磁盤分區典型配置如下:
文件系統 文件格式 大小
/ ext3 50GB,Linux系統的根目錄,所有的目錄都掛在這個目錄下面,建議大小為5GB以上
/boot ext3 用來存放與Linux系統啟動有關的程序,比如啟動引導裝載程序等,建議大小為200MB
swap swap 1*RAM,實現虛擬內存,建議大小是物理內存的1~2倍
/usr ext3 用來存放Linux系統中的應用程序,其相關數據較多,建議大於3GB以上
/var ext3 用來存放Linux系統中經常變化的數據以及日志文件,建議大於1GB以上
/tmp ext3 將臨時盤在獨立的分區,可避免在文件系統被塞滿時影響到系統的穩定性。建議大小為500MB以上
/data1 xfs 依據數據量而定
/data2 xfs 依據數據量而定
/home ext3 存放普通用戶的數據,是普通用戶的宿主目錄,建議大小為剩下的空間
2、設置GP 推薦的OS 參數
注:標示“三台主機”的表示要在三台電腦上都做該操作,“master節點”表示只在mdw主機上操作
Greenplum 需要在GP 數據庫系統的所有主機(masters 和 segments) 上配置推薦的OS參數
以root 用戶登錄,修改所有主機的OS 參數
(1)、關閉防火牆(三台主機)(學習時可以直接關閉,正式環境是通過開放端口)
service iptables stop 停止防火牆服務,重啟電腦后仍然會開啟
chkconfig iptables off 關閉防火牆服務開機啟動,重啟后生效
(2)、修改/etc/hosts文件(三台主機)
在hosts文件中添加或修改一下內容:
192.168.10.200 mdw
192.168.10.201 sdw1
192.168.10.202 sdw2
添加之后,可以通過ping命令測試是否正確,如:ping sdw1 測試是否能訪問sdw1節點
(3)、修改或添加/etc/sysctl.conf(三台主機)
xfs_mount_options = rw,noatime,inode64,allocsize=16m
kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000
kernel.sem = 250 512000 100 2048
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
vm.overcommit_memory = 2
(4)、配置/etc/security/limits.conf文件,添加以下內容(三台主機)
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
(5)、設置預讀塊的值為16384(三台主機)
# /sbin/blockdev --getra /dev/sda 查看預讀塊,默認大小為256
# /sbin/blockdev --setra 16384 /dev/sda 設置預讀塊
(6)、設置磁盤訪問I/O調度策略(三台主機)
# echo deadline > /sys/block/sda/queue/scheduler
(7)、上傳並解壓數據庫安裝文件(master節點)
二、GP數據庫安裝
安裝之后的目錄文件如下:
其中:
greenplum_path.sh - Greenplum 數據庫環境變量配置文件
GPDB-LICENSE.txt- Greenplum license 文件
LICENSE.thirdparty- 第三方 license 文件
bin- 目錄下包括Greenplum 數據庫管理程序,也包括PostgreSQL 客戶端和服務程序
demo - 目錄下包括Greenplum 演示程序
docs - Greenplum 數據庫幫助文檔(PDF 格式)
etc - OpenSSL 配置文件
ext - Greenplum 數據庫程序用的附加程序( 如 Python)
include - Greenplum 數據庫C header files
lib - Greenplum 數據庫和 PostgreSQL 庫文件
sbin - Supporting/Internal 腳本和程序
share - Greenplum 數據庫共享文件
2、獲取環境參數(master節點)
在/etc/profile中增加:# source /usr/local/greenplum-db/greenplum_path.sh
然后在三台主機執行命令:source /usr/local/greenplum-db/greenplum_path.sh
3、創建包含所有主機名的文件/home/gpadmin/all_hosts
首先指定greenplum用戶 # useradd gpadmin # passwd gpadmin
賦用戶權限 # chown -R gpadmin:gpadmin gpadmin
然后在gpadmin賬戶下創建 all_hosts,文件內容:(三台主機)
mdw
sdw1
sdw2
4、運行gpseginstall工具 (master節點 /home/gpadmin)
# gpseginstall -f all_hosts -u gpadmin -p gpadmin
all_hosts是上個步驟創建的文件,安裝過程中會讓輸入三台主機的密碼,完成后提示成功,如下圖:
5、切換到gpadmin用戶驗證無密碼登錄(三台主機)
(1)切換用戶
$ su - gpadmin
(2)使用gpssh工具來測試無密碼登錄所有主機,結果如下圖:
$ gpssh -f all_hosts -e ls -l $GPHOME
server 127.127.1.0
(2) 在Segment主機上編輯/etc/ntp.conf
server mdw
(3) 在Master主機上,通過NTP守護進程同步系統時鍾(切換gpadmin用戶)
# gpssh -f all_hosts -v -e 'ntpd'
9、驗證操作系統設置(切換gpadmin用戶)
# gpcheck -f all_hosts -m mdw
注意運行結果是否有error信息,如果有處理掉錯誤信息后重新執行上面的命令檢查,直至沒有error信息,error如下圖
成功的信息如下:
10、創建Greenplum數據庫配置文件
(1) 以gpadmin用戶登錄
# su - gpadmin
(2) 從模板中拷貝一份gpinitsystem_config文件
$ cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/gpinitsystem_config
$ chmod 775 gpinitsystem_config
(3) 設置所有必須的參數
ARRAY_NAME="EMC Greenplum DW"
SEG_PREFIX=gpseg
PORT_BASE=40000
declare -a DATA_DIRECTORY=(/data/primary)
MASTER_HOSTNAME=mdw
MASTER_DIRECTORY=/data/master
MASTER_PORT=5432
TRUSTED SHELL=ssh
CHECK_POINT_SEGMENT=8
ENCODING=UNICODE
(4) 設置可選參數
MIRROR_PORT_BASE=50000
REPLICATION_PORT_BASE=41000
MIRROR_REPLICATION_PORT_BASE=51000
declare -a MIRROR_DATA_DIRECTORY=(/data/mirror)
11、運行初始化工具初始化數據庫
$ gpinitsystem -c gpinitsystem_config -h seg_hosts
成功之后,數據庫便啟動了,信息如下:
出現Continue with Greenplum creation Yy/Nn>,輸入 y,然后等待如下完成
12、設置環境變量
添加"export MASTER_DATA_DIRECTORY=/data/master/gpseg-1"到~/.bashrc文件尾,並同步到sdw1和sdw2節點
$ scp .bashrc sdw1:~
$ scp .bashrc sdw2:~
13、啟動和停止數據庫測試是否能正常啟動和關閉,命令如下
$ gpstart
$ gpstop
15、訪問數據庫
psql -d postgres
輸入查詢語句
select datname,datdba,encoding,datacl from pg_database;
顯示信息如下