您好,登錄后才能下訂單哦!
這里使用1個master,3個segment的集群,ip為
192.168.6.119 master
192.168.6.120 segment
192.168.6.121 segment standbymaster
配置了這個文件之后,一定要同時修改 /etc/sysconfig/network這個文件如下(所有機器都要修改):
[root@mdw ~]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=dw-greeplum-1
[root@mdw ~]# groupadd -g 530 gpadmin [root@mdw ~]# useradd -g 530 -u530 -m -d /home/gpadmin -s /bin/bash gpadmin [root@mdw ~]# passwd gpadmin Changing password for user gpadmin. New password: BAD PASSWORD: it is too simplistic/systematic BAD PASSWORD: is too simple Retype new password: passwd: all authentication tokens updated successfully.
[root@mdw selinux]# cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted
好了現在準備工作已經做好了,可以開始安裝Greenplum了
[root@mdw ~]# mkdir /opt/greenplum
[root@mdw ~]# chown -R gpadmin:gpadmin /opt/greenplum
之后安裝文件就放在這個目錄下面
將下載的文件放在CenOS系統中自己能找到的位置即可,給該文件賦予執行權限,之后執行該文件,即開始安裝
[root@mdw ~]# chmod +x greenplum-db-4.3.3.1-build-1-RHEL5-x86_64.bin [root@mdw ~]# ./greenplum-db-4.3.3.1-build-1-RHEL5-x86_64.bin
期間需要修改默認安裝目錄,輸入/opt/greenplum/greenplum-db-4.8.3.1
之后即可安裝成功,此時master上的Greenplum安裝成功了。但是之前我們都是以root身份安裝的,所以要將安裝目錄下的文件的所有者都修改為gpadmin
[root@mdw ~]# chown -R gpadmin:gpadmin /opt/greenplum
因為只在master上安裝了Greenplum,所以下面要將安裝包批量發送到每個segment上,才能算是整個Greenplum集群完整安裝了Greenplum。下面的操作都是為了連接所有節點,并將安裝包發送到每個節點。
[root@mdw ~]# su gpadmin [gpadmin@mdw root]$ cd [gpadmin@dw-greeplum-1 gpseg-1]$ more /opt/greenplum/greenplum-db/conf/hostlist dw-greeplum-1 dw-greeplum-2 dw-greeplum-3
[gpadmin@mdw [gpadmin@dw-greeplum-1 gpseg-1]$ more /opt/greenplum/greenplum-db/conf/seg_hosts
dw-greeplum-2
dw-greeplum-3
注意此時需要轉換成gpadmin身份來操作了,按照上面的文件內容創建hostlist和seg_hosts文件,備用。
greenplum_path.sh中保存了運行Greenplum的一些環境變量設置,包括GPHOOME、PYTHONHOME等設置
[gpadmin@mdw ~]$ source /opt/greenplum/greenplum-db/greenplum_path.sh [gpadmin@mdw ~]$ gpssh-exkeys -f /opt/greenplum/greenplum-db/conf/hostlist
[STEP 1 of 5] create local ID and authorize on local host ... /home/gpadmin/.ssh/id_rsa file exists ... key generation skipped [STEP 2 of 5] keyscan all hosts and update known_hosts file [STEP 3 of 5] authorize current user on remote hosts ... send to sdw1 ... send to sdw2 ... send to sdw3 [STEP 4 of 5] determine common authentication file content [STEP 5 of 5] copy authentication files to all remote hosts ... finished key exchange with sdw1 ... finished key exchange with sdw2 ... finished key exchange with sdw3 [INFO] completed successfully
這就說明成功打通了,之后就可以使用下面的命令開啟批量操作,如下:
注意gpssh-exkeys命令使用的時候一定要用gpadmin身份,因為這個命令會生成ssh的免密碼登錄的秘鑰,在/home/gpadmin/.ssh這里。如果使用root身份使用gpssh-exkeys命令,那么生成的.ssh秘鑰在root的home下面或者是在/home/gpadmin下面但是是root的所有者,如果之后使用gpadmin身份執行相應操作的時候就沒有權限。
[gpadmin@mdw ~]$ gpssh -f /opt/greenplum/greenplum-db/conf/hostlist
Note: command history unsupported on this machine ...
=> pwd
[sdw1] /home/gpadmin
[sdw3] /home/gpadmin
[sdw2] /home/gpadmin
[ mdw] /home/gpadmin
=> exit
這里pwd命令是linux中的查看路徑命令,這里也是查看一下批量操作時所處的位置,從中可以看到同時連接到了4個節點。這里如果/etc/hosts文件中參數只設置了兩個,沒有設置主機名,就只能同時連接2個節點,而且是隨機的。發生這個錯誤當時也是找了好長時間。
這里我們只是測試一下,exit之后先做一些其他的操作。
打通之后需要將master中的greenplum安裝包批量復制到各個segment節點上。
[gpadmin@mdw conf]$ cd /opt/greenplum/ 打包: [gpadmin@mdw greenplum]$ tar -cf gp.4.3.tar greenplum-db-4.3.8.1/ 然后利用gpscp命令將這個文件復制到每一臺機器上: [gpadmin@mdw greenplum]$ gpscp -f /home/gpadmin/conf/hostlist gp.4.3.tar =:/opt/greenplum/
ok,如果沒有意外,就批量復制成功了,可以去子節點的相應文件夾查看,之后要將tar包解壓,我們使用批量操作
[gpadmin@mdw conf]$ gpssh -f hostlist => cd /opt/greenplum [sdw3] [sdw1] [sdw2] [mdw] => tar -xf gp.4.3.tar [sdw3] [sdw1] [sdw2] [mdw] 建立軟鏈接 => ln -s ./greenplum-db-4.3.8.1 greenplum-db [sdw3] [sdw1] [sdw2] [mdw] => ll(可以使用ll查看一下是否已經安裝成功)
這樣就完成了所有節點的安裝。
在初始化之前的的幾個步驟都是做一些準備工作。
[gpadmin@mdw conf]$ gpssh -f hostlist
=> mkdir gpdata
[sdw3]
[ mdw]
[sdw2]
[sdw1]
=> cd gpdata
[sdw3]
[ mdw]
[sdw2]
[sdw1]
=> mkdir gpmaster gpdatap1 gpdatap2 gpdatam1 gpdatam2
[sdw3]
[ mdw]
[sdw2]
[sdw1]
=> ll
[sdw3] 總用量 20 [sdw3] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatam1
[sdw3] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatam2
[sdw3] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatap1
[sdw3] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatap2
[sdw3] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpmaster
[ mdw] 總用量 20 [ mdw] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatam1
[ mdw] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatam2
[ mdw] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatap1
[ mdw] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatap2
[ mdw] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpmaster
[sdw2] 總用量 20 [sdw2] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatam1
[sdw2] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatam2
[sdw2] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatap1
[sdw2] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatap2
[sdw2] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpmaster
[sdw1] 總用量 20 [sdw1] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatam1
[sdw1] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatam2
[sdw1] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatap1
[sdw1] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpdatap2
[sdw1] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpmaster
=> exit
[gpadmin@mdw ~]$ cd
[gpadmin@mdw ~]$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
source /opt/greenplum/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/home/gpadmin/gpdata/gpmaster/gpseg-1
export PGPORT=2345
export PGDATABASE=testDB
[gpadmin@mdw ~]$ source .bash_profile(讓環境變量生效)
我自己是覺得這個環境變量使用source有時候不能生效,所以需要重啟機器。
這里有個問題,Greenplum自己會安裝一個Python包,是2.6.6的,具體是干什么用的忘了,之后再補充。而CentOS6.5本身自帶有個一Python包,是2.6.2的,設置了以上的環境變量了之后,使用yum安裝一些軟件的時候就會出現問題(因為yum是基于Python的),因為系統就發現自己有兩個Python包,他不知道用哪一個了。我還沒有試過更新系統的Python包,需要安裝軟件的時候,我就將環境變量都注釋掉,安裝完之后再讓他生效。
[gpadmin@dw-greeplum-1 gpseg-1]$ more /opt/greenplum/greenplum-db/conf/initgp_config ARRAY_NAME="Greenplum" SEG_PREFIX=gpseg PORT_BASE=33000 declare -a DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatap1 /home/gpadmin/gpdata/gpdatap2) MASTER_HOSTNAME=dw-greeplum-1 MASTER_DIRECTORY=/home/gpadmin/gpdata/gpmaster MASTER_PORT=2345 TRUSTED_SHELL=/usr/bin/ssh MIRROR_PORT_BASE=43000 REPLICATION_PORT_BASE=34000 MIRROR_REPLICATION_PORT_BASE=44000 declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatam1 /home/gpadmin/gpdata/gpdatam2) MACHINE_LIST_FILE=/opt/greenplum/greenplum-db/conf/seg_hosts
[gpadmin@mdw ~]$ gpinitsystem -c /opt/greenplum/greenplum-db/conf/initgp_config -s dw-greeplum-3 #####初始化的時候并制定第三臺機器為standby數據庫
或者
[gpadmin@mdw ~]$ gpinitsystem -c initgp_config -h seg_hosts ###先初始化所有,再指定第三臺機器為standby
[gpadmin@mdw ~]$ gpinitstandby -s dw-greeplum-3
其中sdw3是指master的standby所在的節點,我看書上和網上的一些資料都將standby放在最后一個節點,可能是約定俗成的吧。
如果上面有一些配置有問題,gpinitsystem就不能成功,日志在主節點/home/gpadmin/gpAdminLogs/的gpinitsystem_2016XXXX.log文件中。
需要注意的是如果初始化失敗,一定要認真查看這個日志文件,一味重復安裝沒有太大意義,重要的是要找到主要原因。我在/etc/sysctl.conf文件中粘貼的時候出現了一些錯誤,所以一直找不到原因,最后聯系到Greenplum官方社區,很感謝給與我幫助的人!
問題:
1.我使用虛擬機(使用橋接模式)配置的時候,出現過“sdw1文件不能復制到sdw2”,在stackoverflow中看到有人說要設置DNS,我設置DNS之后果真可以gpinitsystem成功了!但是一直不太明白為什么要設置DNS,因為確實不需要DNS解析什么啊。。
2.我在使用虛擬機時,為了省力,先安裝一個CentOS,這個CentOS會在硬盤上有一個安裝包,將這個安裝包拷貝之后,發現拷貝安裝包的CentOS中網卡名與源安裝包的網卡名不一樣,沒有使用eth0,使用了eth2或者Auto-eth2。
心得:
1.安裝過程中遇到很多很多問題,很多事關于linux網絡的問題,不過還好,了解之后就好解決了
2.gpinitsystem失敗的原因有很多,一定要認真去看日志,日志會告訴我們錯誤的原因,一次一次的嘗試并不能解決問題。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。