Centos7安裝Greenplum6教程(由單機master到集羣)

環境:centos7 ,Greenplum6

1.  Greenplum 6.4 下載

https://github.com/greenplum-db/gpdb/releases/tag/6.4.0

 

2. 安裝單機master環境準備

2.1 關閉SELINUX 

[root@master ~]# vim /etc/selinux/config

 

2.2關閉防火牆

[root@master ~]#  systemctl status firewalld.service(查看防火牆服務狀態)

Active屬性:dead爲防火牆已關閉,run爲防火牆正在運行

 

 [root@master ~]#  systemctl stop firewalld.service
 [root@master ~]#  systemctl disable firewalld.service   (禁用服務後就無法再使用stop firewalled.service了,下圖主機名換成了segment1)

 

2.4改機器名

#查機器名
[root@master ~]#  hostname
#改名爲master
[root@master ~]#  hostnamectl set-hostname master

 

 

2.5創建gpaadmin用戶和用戶組

[root@master ~]#  groupadd -g 3030 gpadmin
[root@master ~]#  useradd -u 3030 gpadmin -g gpadmin -d /home/gpdata
[root@master ~]#  passwd gpadmin
    (密碼gpadmin123)
    #補充知識點:刪除 groupdel gpadmin userdel gpadmin

vim /etc/passwd可查看用戶及所屬組,工作目錄

 

2.6配置內核參數

[root@master ~]#  vim /etc/sysctl.conf
以下面內容覆蓋原有內容:
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.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 = 10000 65535
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.overcommit_memory = 2


 

sysctl -p使配置生效

 

 

2.7  vim /etc/security/limits.conf

以下面內容覆蓋:

*soft nofile 65536
*hard nofile 65536
*soft nproc 131072
*hard nproc 131072


2.8CentOS7需要加入服務logind

[root@master ~]#  echo "RemoveIPC=no" >> /etc/systemd/logind.conf
[root@master ~]#  service systemd-logind restart

 

2.9設置hosts文件

[root@master ~]#  vim /etc/hosts

添加:172.16.250.106 master

172.16.250.106 這裏更改成你自己的ip地址

 

2.10設置network

[root@master ~]#  vim /etc/sysconfig/network

添加:

networking=yes

hostname=master    (不區分大小寫)

 

2.11重啓服務器reboot

[root@master ~]# reboot

 

3.安裝GreenPlum

3.1 gp6安裝包上傳到root目錄

cd /進入根目錄

rz命令上傳文件參考:https://blog.csdn.net/lx_frolf/article/details/82770546

yum -y install greenplum-db-6.1.0-rhel6-x86_64.rpm

#默認安裝到/usr/local,授權給gpadmin
chown -R gpadmin /usr/local/greenplum*
chgrp -R gpadmin /usr/local/greenplum*


使環境變量生效
source /usr/local/greenplum-db/greenplum_path.sh

 

 

3.2創建instance需要的目錄

mkdir -p /home/gpdata
    mkdir -p /home/gpdata/master
    mkdir -p /home/gpdata/gp1
    mkdir -p /home/gpdata/gp2
    mkdir -p /home/gpdata/gp3
    mkdir -p /home/gpdata/gp4
#修改目錄屬主
    chown -R gpadmin:gpadmin /home/gpdata
    chown -R gpadmin:gpadmin /home/gpdata/master
    chown -R gpadmin:gpadmin /home/gpdata/gp*

 

 

3.3切換用戶gpadmin

su gpadmin

進入$開頭的bash環境

cd

改變前綴的方法:

vim bash_profile

文件末尾追加:

export PS1='[\u@\h \w]',

退出文件並 source bash_profile 使其生效

 

 

3.4 /home/gpadmin/.bash_profile文件添加以下內容:

source /usr/local/greenplum-db-6.4.0/greenplum_path.sh

export MASTER_DATA_DIRECTORY=/home/gpdata/master/gpseg-1

export PGPORT=2345

export PGUSER=gpadmin

export PGDATABASE=gpdb

3.5 /home/gpadmin/.bashrc文件添加同3.4的內容

添加上文3.4同樣內容

 

 

3.6設置子節點的host

vim all_hosts_file

添加一行master(單機版只有一個host)

 

 

3.7 權限互通

[gpadmin@master ~]#  gpssh-exkeys -f all_hosts_file

 

3.8 編輯gp初始化文件

vim initgp_config
寫入:
SEG_PREFIX=gpseg
PORT_BASE=33000
declare -a DATA_DIRECTORY=(/home/gpdata/gp1 /home/gpdata/gp2 /home/gpdata/gp3 /home/gpdata/gp4)
MASTER_HOSTNAME=master
MASTER_PORT=2345
MASTER_DIRECTORY=/home/gpdata/master
DATABASE_NAME=gpdb

 

3.9設置節點服務器

vim seg_hosts_file
寫入:
master
本例單機,只有master這一臺

 

4.初始化GP

gpinitsystem -c initgp_config -h seg_hosts_file

初始化失敗:

原因:阿里雲的服務器初始化沒有設置分配swap空間,分配好swap空間即可

分配swap詳情參考:https://www.cnblogs.com/zdz8207/p/linux-centos-swap.html

 

5.連接GP

5.1psql登錄修改密碼

 

    su gpadmin
    psql -p 2345
    修改數據庫密碼
        alter role gpadmin with password 'bigdata2018';
    退出: \q

 

 

5.2遠程連接配置

vim /home/gpdata/master/gpseg-1/postgresql.conf
修改:
#listen_addresses = '*',去#註釋
vim /home/gpdata/master/gpseg-1/pg_hba.conf
添加:
host     all         gpadmin         0.0.0.0/0               md5

 

 

5.3重新加載配置文件

gpstop -u

 

 

附錄

其他啓停命令

gpstart #正常啓動
gpstop #正常關閉
gpstop -M fast #快速關閉
gpstop –r #重啓

 

 

安裝master後添加segment節點

1.更改segment系統配置

1.1更改機器名爲segment

參考前文

 

1.2修改/etc/hosts文件(在master上以root權限更改,再用scp命令複製到segment節點)

[root@master ~]#  scp /etc/hosts segment1:/etc

 

1.3關閉selinux及防火牆

參考前文

selinux文件可用scp命令由master複製到segment節點

[root@master ~]#  scp /etc/selinux/config segment1:/etc/selinux

 

 

1.4修改/etc/sysconfig/network文件(進入每臺segment中修改)

 

1.5複製master的/etc/sysctl.conf文件到segment

[root@master ~] scp /etc/sysctl.conf segment:/etc/sysconfig

 

並sysctl -p執行

 

1.6修改/etc/security/limits.d/20-nproc.conf文件並複製到segment

[root@master ~] vim /etc/security/limits.d/20-nproc.conf

 

1.7複製/etc/security/limits.conf到segment節點

[root@master ~] scp /etc/security/limits.conf  segment1:/etc/security/

 

 

1.8創建gpadmin組及用戶

[root@master ~]# groupadd -g 1001 gpadmin

[root@master ~]# useradd -g admin -u 1001 gpadmin -d /home/gpadmin -s /bin/bash gpadmin

[root@master ~]# passwd admin 

 

1.9配置擴展segment節點需要的文件

1.9.1修改master主機gpadmin目錄下的all_hosts_file

將所有節點的主機名都加進去

1.9.2修改master主機gpadmin目錄下的seg_hosts_file

將segment節點的主機名加進去

 

1.9.3新增hosts_expand文件

將當前需要新增的節點主機名加入(如此次需要加入segment1,就將segment1寫入)

gpadmin目錄下的文件如下圖:

 

1.9.4在segment節點增加和master路徑一致的存放數據的目錄

[gpadmin@segment ~]#  mkdir /home/gpdata

[gpadmin@segment ~]#  mkdir /home/gpdata/master

[gpadmin@segment ~]#  mkdir /home/gpdata/gp1

[gpadmin@segment ~]#  mkdir /home/gpdata/gp2

[gpadmin@segment ~]#  mkdir /home/gpdata/gp3

[gpadmin@segment ~]#  mkdir /home/gpdata/gp4

 

2.配置SSH免密登錄

2.1master主機生成密鑰ssh-keygen -t rsa -P '' 

[gpadmin@master ~]#  ssh-keygen -t rsa -P ''

id_rsa爲私鑰,id_rsa.pub爲公鑰

2.2將公鑰複製到segment的 ~/.ssh/authorized_keys文件(.ssh目錄及authorized_keys可能要提前創建)

[gpadmin@master ~]#  scp ~/.ssh/id_rsa.pub segment1:~/.ssh/authorized_keys

2.3設置目錄權限

1) .ssh目錄的權限必須是700(非常重要)

[root@segment1 gpadmin]#  chmod 700 .ssh

2) .ssh/authorized_keys文件權限必須是600

[root@segment1 .ssh]#  chmod 600 authorized_keys

2.4測試節點之間是否連通

[gpadmin@master ~]#  gpssh-exkeys -f all_hosts_file

最後出現completed successfully即證明節點之間已連通

 

 

3.在segment安裝GP

3.1在master上將默認安裝在/usr/local的greenplum-db-x.x.x壓縮打包(需要將/usr/local的讀權限給到gpadmin,否則會報錯)

master上未授權時壓縮文件失敗:

[root@master ~]# chmod -R gpadmin:gpadmin /usr/local

[gpadmin@master ~]# tar -cf gp.tar /usr/local/greenplum-db-6.4.0/

文件壓縮成功:


 

3.2將壓縮包複製到segment節點(需要將/usr/local的讀權限給到gpadmin,否則會報錯)

segment1上未授權時複製失敗:

[root@segment1 ~]# chown -R gpadmin:gpadmin /usr/local

[gpadmin@master ~]#  scp /usr/local/gp.tar segment1:/usr/local/

文件複製成功:

 

3.3解壓文件

[root@segment1 local]# tar -xf gp.tar

3.4建立軟連接

[gpadmin@segment1 local]# ln -s greenplum-db-6.4.0 greenplum-db

 

4.環境配置

4.1複製/home/gpadmin/.bash_profile到segment

[gpadmin@master ~]#  scp /home/gpadmin/.bash_profile segment:/home/gpadmin/

4.2使環境變量生效

[gpadmin@segment1 ~]# source .bash_profile

4.3複製/home/gpadmin/.bashrc到segment

 

5.使用gpexpand函數增加segment節點

5.1gpexpand -f hosts_gpexpand

中間需要確認一次,並且輸入數據存放的路徑

成功會顯示已生成gpexpand_inoutfile開頭的文件

 

5.2修改gpexpand_inputfile(只保留前面4行)

剩下的都可刪掉,否則gpexpand -i 命令會失敗,報錯如下

 

5.3gpexpand -i 腳本文件

[gpadmin@segment1 ~]pexpand -i gpexpand_inputfile_20200417_001320

(出現Initialization of the system expansion complete即增加節點成功)

 

5.4刪除增加節點生成的schema

(不刪除以後則無法增加節點)

[gpadmin@segment1 ~]pexpand -c

 

5.5重分佈表

[gpadmin@segment1 ~]$ gpexpand -d 60:00:00

(出現completed successfully即重分佈成功)

 

5.6失敗回滾

[gpadmin@master ~]$ gpexpand -r

 

5.7進入GP查詢節點信息

=# select * from gp_segment_configuration

 

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