GP增加計算節點

orclwujian發表於2016-09-21
現叢集環境
master一臺:centos6.7  4核4G
主機名:gp-matser;IP:172.30.248.18    
segment兩臺:centos6.7  4核4G
主機名:gp-segment1;IP:172.30.251.189
主機名:gp-segment2;IP:172.30.251.19

新增兩個節點centos6.7  4核4G
主機名:gp-segment3;IP:172.30.251.79
主機名:gp-segment4;IP:172.30.251.8

一、準備工作

1、檢查新增主機的 SElinux服務為關閉狀態
2、檢查新增主機的 iptables服務為關閉狀態
3、修改新增主機的/etc/sysctl.conf檔案(用現有節點上的檔案覆蓋即可)
4、修改新增主機/etc/security/limit.conf檔案,設定檔案開啟數等限制(用現有節點上的檔案覆蓋即可)
5、修改所有主機的/etc/hosts檔案,增加所有主機資訊
[root@gp-segment4 DB]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain
172.30.248.18     gp-master
172.30.251.189    gp-segment1
172.30.251.19     gp-segment2
172.30.251.79     gp-segment3
172.30.251.8      gp-segment4
6、設定新增主機所有磁碟分割槽的read-ahead value大小為16384
7、設定新增主機 linux磁碟IO排程器對磁碟的訪問支援不同的策略,預設的CFQ,GP建議設定為deadline
8、修改所有主機 /boot/grub/grub.conf檔案
9、檢查所有主機的THP服務都為disable狀態
10、建立GP使用者
11、master上建立新增節點檔案
[root@gp-master master]# cat /tmp/expend_hosts
gp-segment3
gp-segment4

以上大部分工作在上一篇GP叢集部署的時候都有詳細介紹,這裡不再詳細闡述。

二、segment初始化
1、生成配置檔案
[gpadmin@gp-master ~]$gpexpand -f /tmp/expend_hosts -D expand (注:這個expand庫要預先在叢集上建立)
..
Would you like to initiate a new System Expansion Yy|Nn (default=N):
> y
..
How many new primary segments per host do you want to add? (default=0):
> 1
..
Enter new primary data directory 1:
> /disk/DB (新增節點的資料目錄,這個目錄要預先在新增節點上建立並且gpadmin對這個目錄有許可權)
.. 
[gpadmin@gp-master ~]$ ls
gpexpand_inputfile_20160817_112355
[gpadmin@gp-master ~]$ cat gpexpand_inputfile_20160817_112355
gp-segment3:gp-segment3:40000:/disk/DB/gpseg2:4:2:p
gp-segment4:gp-segment4:40000:/disk/DB/gpseg3:5:3:p

這個檔案的格式是 hostname:address:port:fselocation:dbid:content:preferred_role:replication_port
可以用select * from gp_segment_configuration ;檢視現在叢集的基本配置

2、初始化
[gpadmin@gp-master ~]$ gpexpand -i gpexpand_inputfile_20160817_112355 -D expand
...
Would you like to continue with System Expansion Yy|Nn (default=N):
> y
...
初始化成功我進叢集看看
[gpadmin@gp-master ~]$ psql -U gpadmin -d dhdw
psql (8.2.15)
Type "help" for help.

dhdw=# select * from gp_segment_configuration ;
 dbid | content | role | preferred_role | mode | status | port  |  hostname   |   address   | replication_port | san_mounts
------+---------+------+----------------+------+--------+-------+-------------+-------------+------------------+------------
    1 |      -1 | p    | p              | s    | u      |  5432 | gp-master   | gp-master   |                  |
    2 |       0 | p    | p              | s    | u      | 40000 | gp-segment1 | gp-segment1 |                  |
    3 |       1 | p    | p              | s    | u      | 40000 | gp-segment2 | gp-segment2 |                  |
    4 |       2 | p    | p              | s    | u      | 40000 | gp-segment3 | gp-segment3 |                  |
    5 |       3 | p    | p              | s    | u      | 40000 | gp-segment4 | gp-segment4 |                  |
(5 rows)

dhdw=# select gp_segment_id,"count"(*) from cdm_user GROUP BY 1
dhdw-# ;
 gp_segment_id | count 
---------------+--------
             1 | 227826
             0 | 227854
(2 rows)

可以看出新增的節點已經加到叢集中,但是資料還是隻分佈在原來的兩個節點上

3、資料重分佈
[gpadmin@gp-master ~]$ gpexpand -d 02:00:00 -D expand
...
20160817:16:33:45:030473 gpexpand:gp-master:gpadmin-[INFO]:-Distribution policy for table gpcmdr_instance_gpmoncon.fsmapcache is 'host'
20160817:16:33:45:030473 gpexpand:gp-master:gpadmin-[INFO]:-Expanding gpperfmon.gpcmdr_instance_gpmoncon.fsmapcache
20160817:16:33:45:030473 gpexpand:gp-master:gpadmin-[INFO]:-Finished expanding gpperfmon.gpcmdr_instance_gpmoncon.fsmapcache
20160817:16:33:52:030473 gpexpand:gp-master:gpadmin-[INFO]:-EXPANSION COMPLETED SUCCESSFULLY
20160817:16:33:52:030473 gpexpand:gp-master:gpadmin-[INFO]:-Exiting...
資料重分佈成功,再進叢集看看資料分佈情況
dhdw=# select gp_segment_id,"count"(*) from cdm_user GROUP BY 1 ;
 gp_segment_id | count 
---------------+--------
             3 | 113780
             1 | 114046
             2 | 113834
             0 | 114020
這裡看到資料已經重分佈到所有節點上

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29989552/viewspace-2125263/,如需轉載,請註明出處,否則將追究法律責任。

相關文章