Greenplum安裝步驟

近日在公司測試環境搭建成功了Greenplum,期間遇到一些問題,特此記錄下來。
本次用家裏的虛擬機做演示:
主機名 ip
mdw 192.168.114.129
sdw1 192.168.114.130
sdw2 192.168.114.131
三臺主機在/etc/hosts文件添加紀錄。

一、三臺主機內核參數設置,修改 /etc/sysctl.conf 的參數,然後執行sysctl -p生效。
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

二、三臺主機在 /etc/security/limits.conf 增加如下內容:
* soft nofile 65536 
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072 
上述配置具體含義:
soft nproc: 可打開的文件描述符的最大數(軟限制)
hard nproc:可打開的文件描述符的最大數(硬限制)
soft nofile:單個用戶可用的最大進程數量(軟限制)
hard nofile:單個用戶可用的最大進程數量(硬限制)
注意:對於RedHat 6.x和Centos6.x的機子,在/etc/security/limits.d/90-nproc.conf  的參數會覆蓋上述文件參數。如果這兩個文件都設置參數,保證參數在90-nproc.conf設置好了。

三、root登陸Master主機安裝Greenplum binaries(若是源碼安裝網上很多文章可以參考)
執行下述命令:
unzip Greenplum-db-4.2.2.4-build-1-CE-RHEL5-i386.zip
chmod u+x greenplum-db-4.2.2.4-build-1-CE-RHEL5-i386.bin
./greenplum-db-4.2.2.4-build-1-CE-RHEL5-i386.bin(安裝過程根據提示 yes,Enter即可)

四、三臺主機同一目下都創建 all_hosts 和 all_segs 兩張表
all_hosts 表:
mdw
sdw1
sdw2
all_segs 表:
sdw1
sdw2
注意:建好表後,修改表的用戶屬性:
chown gpadmin:gpadmin all_*

五、Master主機爲所有主機建立gpadmin賬號:
1.獲取環境參數(master節點):
source /usr/local/greenplum-db/greenplum_path.sh2
2.建立gpadmin賬號並設置密碼 :
gpseginstall -f /root/gpdb/all_hosts -u gpadmin -p gpadmin
(基於安全考慮後續需要修改密碼,all_hosts是上個步驟創建的文件,安裝過程中會讓輸入三臺主機的密碼)
3.完成後提示成功,如下圖:


六、Master主機切換到gpadmin用戶,驗證GP安裝配置正確:
cp /root/gpdb/all_* /home/gpadmin/
chown gpadmin:gpadmin /home/gpadmin/all_*
su - gpadmin
source /usr/local/greenplum-db/greenplum_path.sh
gpssh -f all_hosts -e ls -l $GPHOME
(如果成功登錄到所有主機並且未提示輸入密碼,安裝沒有問題。所有主機在安裝路徑顯示相同的內容,且目錄的所有權爲gpadmin用戶)


七、Master 爲root和gpadmin用戶建立主機互信(交換密鑰):
su -root修改GreenPlum安裝目錄的用戶和屬主
gpssh-exkeys -f /home/gpadmin/all_hosts
su - gpadmin
gpssh-exkeys -f /home/gpadmin/all_hosts
安裝的時候可能會遇到下面的報錯:(ssh 6.7以上屏蔽不安全算法)
[ERROR sdw1] Incompatible ssh peer (no acceptable kex algorithm)
解決方法:
在/etc/ssh/sshd_config最後加上:
 KexAlgorithms [email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
然後協議那裏修改成:Protocol 1,2

八、Master上操作創建數據存儲區域:
mkdir /data
mkdir /data/master
chown gpadmin:gpadmin /data/master/
source /usr/local/greenplum-db-4.2/greenplum_path.sh
gpssh -f /home/gpadmin/all_segs -e 'mkdir /data'
gpssh -f /home/gpadmin/all_segs -e 'mkdir /data/primary'
gpssh -f /home/gpadmin/all_segs -e 'mkdir /data/mirror'
gpssh -f /home/gpadmin/all_segs -e 'chown gpadmin /data/primary'
gpssh -f /home/gpadmin/all_segs -e 'chown gpadmin /data/mirror'

九、同步系統時鐘:
1.Matser主機的/etc/ntp.conf文件server可以保持不變。
2.Segments主機的/etc/ntp.conf文件server改成 server mdw prefer(Master的hostname)
3.在Master主機上,通過NTP守護進程同步系統時鐘:
 gpssh -f all_hosts -v -e 'ntpd'
4.驗證下觀察時間是否一致:
gpssh -f /home/gpadmin/all_hosts -v date 
注意:時區是否相同,mdw的防火牆是否有限制。顯示no server suitable for synchronization found,可以ping下hostanme等等試試。

十、Master上進行主機OS參數檢測:
gpssh -f /home/gpadmin/all_hosts -v date 
在gpcheck完成檢查所有主機的OS參數之後,可能會給出對OS參數的修改意見。

gpcheck時遇到的一些報錯解決:
gpssh -f /home/gpadmin/all_hosts -e 'echo deadline > /sys/block/sr0/queue/scheduler'
gpssh -f /home/gpadmin/all_hosts -e 'echo deadline > /sys/block/sr1/queue/scheduler'
gpssh -f /home/gpadmin/all_hosts -e 'echo deadline > /sys/block/sda/queue/scheduler'
/sbin/blockdev --setra 16384 /dev/sda* /sbin/blockdev --getra /dev/sda*

十一、Master上進行網絡性能和磁盤I/O和內存寬帶的驗證:
1.網絡:
gpcheckperf -f hostfile_exkeys -r N -d /tmp > subnet1.out
查看結果:vim subnet1.out

2.磁盤I/O和內存帶寬:
gpcheckperf -f /home/gpadmin/all_hosts -d /data/mirror -r ds

十二、Master上進行Greenplum的初始化:
1.以gpadmin用戶登錄:
su - gpadmin(source /usr/local/greenplum-db/greenplum_path.sh)
2.拷貝一個gpinitsystem_config示例文件作爲入口:
cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/gpinitsystem_config
chown gpadmin:gpadmin /home/gpadmin/gpinitsystem_config
3.打開剛拷貝的文件並編輯:vim gpinitsystem_config
在sgrments上只配置一個primary實例:declare -a DATA_DIRECTORY=(/data/primary)
文件末行修改: MACHINE_LIST_FILE=/home/gpadmin/all_segs
4.作爲可選項,可以配置Mirror Segment Instance,取消文件中的註釋並根據環境情況配置參數
MIRROR_PORT_BASE=50000
REPLICATION_PORT_BASE=41000
MIRROR_REPLICATION_PORT_BASE=51000
declare -a MIRROR_DATA_DIRECTORY=(/data/mirror)
5.運行初始化命令:
gpinitsystem -c gpinitsystem_config all_segs

有個報錯:-Master host data directory /data/master/gpseg-1 already exists Script Exiting!
解決方法:
rm -rf /data/master/gpseg-1

十三、三臺主機設置GP環境變量:
1. 以gpadmin用戶登錄:
su - gpadmin
2. 打開用戶啓動文件(如.bashrc):
vi ~/.bashrc
3. 添加新行用以加載greenplum_path.sh文件和設置MASTER_DATA_DIRECTORY環境變量:
source /usr/local/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/master/gpseg-1
4. 作爲可選項,還可以設置一些客戶端會話的環境變量,如PGPORT、PGUSER和PGDATABASE以便於使用客戶端命令。例如:
export PGPORT=5432
export PGUSER=gpadmin
export PGDATABASE=default_login_database_name
5. 在編輯完用戶啓動文件後,加載該文件使得修改生效:source ~/.bashrc

十四、連接到postgres數據庫:
psql -d postgres


















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章