docker下greenplum 集群安裝配置

目前安裝的是最新版本的greenplum 5.4.0苛骨。這個版本是基于PostgreSQL 8.3.23 (Greenplum Database 5.4.0 build commit:1971b301f52979ac74fb3d0a141bbaae06b70857) on x86_64-pc-linux-gnu, compiled by GCC gcc (GCC) 6.2.0, 64-bit compiled on Jan
12 2018 21:15:36

經(jīng)驗證這個版本支持json 不支持jsonb。默認(rèn)端口是-p 2345

安裝基本流程

參看網(wǎng)址

創(chuàng)建容器

docker run --name gp_master --privileged -p 2345:2345 -it centos /bin/bash
docker run --name gp_db1 --privileged -p 2346:2345 -it centos /bin/bash
docker run --name gp_db2 --privileged -p 2347:2345 -it centos /bin/bash

進(jìn)入容器留拾,在每一個容器做如下配置

  1. yum install -y net-tools which openssh-clients openssh-server less zip unzip iproute.x86_64

  2. docker中默認(rèn)沒有啟動ssh,為了方便各節(jié)點之間的互連卤材,啟動docker的每個節(jié)點里面的ssh震桶,并創(chuàng)建相關(guān)的認(rèn)證key

  • ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
  • ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
  • ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
  • /usr/sbin/sshd
  1. 配置主機(jī)域名映射關(guān)系
    vi /etc/hosts

172.17.0.11 187ad7900973
172.17.0.12 f41764ccbedc
172.17.0.22 dw-greenplum-1 mdw
172.17.0.24 dw-greenplum-2 sdw1

  1. 修改所有節(jié)點里面的 /etc/sysconfig/network 文件,保持主機(jī)名一致
    vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=mdw

  1. 創(chuàng)建greenplum的用戶和用戶組
    在每個節(jié)點中創(chuàng)建greenplum的用戶和用戶組搭儒,方便安裝greenplum集群。另
  • groupadd -g 530 gpadmin
  • useradd -g 530 -u 530 -m -d /home/gpadmin -s /bin/bash gpadmin
  • chown -R gpadmin:gpadmin /home/gpadmin
  • passwd gpadmin
  1. 修改每個節(jié)點上的文件打開數(shù)量限制
    vi /etc/security/limits.conf

End of file

  • soft nofile 65536
  • hard nofile 65536
  • soft nproc 131072
  • hard nproc 131072
  1. 關(guān)閉每個節(jié)點上的防火墻提茁,關(guān)閉selinux(目前沒有發(fā)現(xiàn)防火墻的配置淹禾,此處沒有處理)
  • vi /etc/selinux/config

SELINUX=disabled
SELINUXTYPE=targeted

在master節(jié)點上安裝greenplum, 以下過程只需要在master節(jié)點處理

  1. mkdir gpfoler
    chown -R gpadmin:gpadmin gpfoler
  2. 復(fù)制greenplum-db-5.4.0-rhel7-x86_64.zip到gpfolder
  3. chown -R gpadmin:gpadmin greenplum-db-5.4.0-rhel7-x86_64.zip
  4. 切換到gpadmin賬號
  • su - gpadmin
  1. 解壓下載后的zip文件
    cd /gpfoler
    unzip greenplum-db-5.4.0-rhel7-x86_64.zip
  2. 賦予文件執(zhí)行權(quán)限
    chmod +x greenplum-db-5.4.0-rhel7-x86_64.bin
  3. 執(zhí)行安裝文件
    ./greenplum-db-5.4.0-rhel7-x86_64.bin
    yes --> /home/gpadmin/greenplum-db-5.4.0--> yes -->yes
    安裝期間需要修改默認(rèn)安裝目錄,輸入/home/gpadmin/greenplum-db-5.4.0
  4. 為了方便安裝集群茴扁,greenplum提供了批量操作的指令铃岔,通過創(chuàng)建配置文件,以使用批處理命令峭火, 以下的當(dāng)前路徑是/home/gpadmin

note: 在gpadmin下可能不能創(chuàng)建這兩個文件毁习,需要切換到root創(chuàng)建
exit --切換到root賬戶下
cd /home/gpadmin/
mkdir conf
cd conf
touch hostlist
vi hostlist
touch seg_hosts
vi seg_hosts
chown -R gpadmin:gpadmin /home/gpadmin/conf
[gpadmin@mdw ~]$ cat ./conf/hostlist
mdw
sdw1
sdw2

[gpadmin@mdw ~]$ cat ./conf/seg_hosts
sdw1
sdw2

  1. 設(shè)置環(huán)境變量,打通所有節(jié)點
    greenplum-db/greenplum_path.sh中保存了運行g(shù)reenplum的一些環(huán)境變量設(shè)置卖丸,包括GPHOOME纺且、PYTHONHOME等設(shè)置,在gpadmin賬號下設(shè)置環(huán)境變量生效稍浆,然后打通所有節(jié)點
    [gpadmin@mdw ~]$ source /home/gpadmin/greenplum-db/greenplum_path.sh
    [gpadmin@mdw ~]$ gpssh-exkeys -f /home/gpadmin/conf/hostlist -- 中間會插入一個密碼123456
    [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

[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

[INFO] completed successfully
成功打通载碌,后面就可以使用以下命令開啟批量操作
注意:使用gpssh-exkeys命令時一定要使用gpadmin身份猜嘱,因為會在/home/gpadmin/.ssh中生成ssh的免密碼登錄秘鑰,如果使用了其它賬號登錄嫁艇,則會生成密鑰在其它賬號下朗伶,后面在gpadmin賬號下就無法使用gpssh的批處理命令

  1. 使用gpssh的批處理命令
    [gpadmin@mdw ~]$ gpssh -f /home/gpadmin/conf/hostlist
    Note: command history unsupported on this machine ...
    => pwd
    [sdw] /home/gpadmin
    [ mdw] /home/gpadmin
    => exit
    這里pwd命令是linux中的查看路徑命令,在這里也是查看批量操作時所在的路徑步咪,從中可以看到已經(jīng)成功連通了三個節(jié)點

  2. 打包master節(jié)點上的安裝包
    tar -cf gp.5.4.tar /home/gpadmin/ -- 在/home/pgadmin/gp.5.4.tar出現(xiàn)
    使用gpscp命令將這個文件復(fù)制到每一臺機(jī)器上
    gpscp -f /home/gpadmin/conf/hostlist gp.5.4.tar =:/home/gpadmin/ --可以看到其他的兩個節(jié)點有/home/pgadmin/gp.5.4.tar
    批量解壓腕让,并建立軟鏈接
    cd /home/gpadmin/conf
    [gpadmin@mdw conf]$ gpssh -f hostlist
    => cd /home/gpadmin
    [sdw]
    [mdw]
    => tar -xf gp.5.4.tar
    [sdw]
    [mdw]
    => ln -s ./greenplum-db-5.4.0 greenplum-db
    [sdw]
    [mdw]

  3. 初始化安裝數(shù)據(jù)庫

  • 批量創(chuàng)建數(shù)據(jù)目錄 結(jié)果是/home/gpadmin/gpdata
    [gpadmin@mdw conf]$ gpssh -f hostlist
    => mkdir gpdata
    [ mdw]
    [sdw2]
    [sdw1]
    => cd gpdata
    [ mdw]
    [sdw2]
    [sdw1]
    => mkdir gpmaster gpdatap1 gpdatap2 gpdatam1 gpdatam2
    [ mdw]
    [sdw2]
    [sdw1]
    => exit

在每個節(jié)點上配置.bash_profile環(huán)境變量 對于這一步,查看數(shù)據(jù)節(jié)點的greenplum_path.sh的確切位置 使用 su - gpadmin

[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 /home/gpadmin/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/home/gpadmin/gpdata/gpmaster/gpseg-1
export PGPORT=2345
export PGDATABASE=postgres

[gpadmin@mdw ~]$ source .bash_profile

在主節(jié)點上初始化配置文件

ARRAY_NAME="Greenplum"
MACHINE_LIST_FILE=/home/gpadmin/conf/seg_hosts
SEG_PREFIX=gpseg
PORT_BASE=33000
declare -a DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatap1 /home/gpadmin/gpdata/gpdatap2)
MASTER_HOSTNAME=mdw
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)

  • chown -R gpadmin:gpadmin /home/gpadmin/conf/gpinitsystem_config

[gpadmin@mdw ~]$ cat /home/gpadmin/conf/gpinitsystem_config

ARRAY_NAME="Greenplum"

MACHINE_LIST_FILE=/home/gpadmin/conf/seg_hosts
Segment 的名稱前綴
SEG_PREFIX=gpseg
Primary Segment 起始的端口號
PORT_BASE=33000
指定 Primary Segment 的數(shù)據(jù)目錄
declare -a DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatap1 /home/gpadmin/gpdata/gpdatap2)
Master 所在機(jī)器的 Hostname
MASTER_HOSTNAME=mdw
指定 Master 的數(shù)據(jù)目錄
MASTER_DIRECTORY=/home/gpadmin/gpdata/gpmaster
Master 的端口
MASTER_PORT=2345
指定Bash的版本
TRUSTED_SHELL=/usr/bin/ssh
Mirror Segment起始的端口號
MIRROR_PORT_BASE=43000
Primary Segment 主備同步的起始端口號
REPLICATION_PORT_BASE=34000
Mirror Segment 主備同步的起始端口號
MIRROR_REPLICATION_PORT_BASE=44000
Mirror Segment 的數(shù)據(jù)目錄
declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatam1 /home/gpadmin/gpdata/gpdatam2)

在主節(jié)點初始化數(shù)據(jù)庫

gpinitsystem -c /home/gpadmin/conf/gpinitsystem_config

如果gpinitsystem不能成功歧斟,就在master節(jié)點的/home/gpadmin/gpAdminLogs/的gpinitsystem_*.log文件中查看日志信息,找出原因進(jìn)行修改偏形,然后再重新執(zhí)行g(shù)pinitsystem進(jìn)行初始化安裝静袖。
出現(xiàn)如下問題:ping: socket: Operation not permitted

命令行執(zhí)行 su - gpadmin
setcap cap_net_raw=ep $(which ping)

安裝完成后使用 su - gpadmin
psql

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市俊扭,隨后出現(xiàn)的幾起案子队橙,更是在濱河造成了極大的恐慌,老刑警劉巖萨惑,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捐康,死亡現(xiàn)場離奇詭異,居然都是意外死亡庸蔼,警方通過查閱死者的電腦和手機(jī)解总,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來姐仅,“玉大人花枫,你說我怎么就攤上這事√透啵” “怎么了劳翰?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長馒疹。 經(jīng)常有香客問我佳簸,道長,這世上最難降的妖魔是什么颖变? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任生均,我火速辦了婚禮,結(jié)果婚禮上悼做,老公的妹妹穿的比我還像新娘疯特。我一直安慰自己,他們只是感情好肛走,可當(dāng)我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布漓雅。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪邻吞。 梳的紋絲不亂的頭發(fā)上组题,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天,我揣著相機(jī)與錄音抱冷,去河邊找鬼崔列。 笑死,一個胖子當(dāng)著我的面吹牛旺遮,可吹牛的內(nèi)容都是我干的赵讯。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼耿眉,長吁一口氣:“原來是場噩夢啊……” “哼边翼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鸣剪,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤组底,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后筐骇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體债鸡,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年铛纬,在試婚紗的時候發(fā)現(xiàn)自己被綠了厌均。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡饺鹃,死狀恐怖莫秆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情悔详,我是刑警寧澤镊屎,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站茄螃,受9級特大地震影響缝驳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜归苍,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一用狱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拼弃,春花似錦夏伊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咏连。三九已至,卻和暖如春鲁森,著一層夾襖步出監(jiān)牢的瞬間祟滴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工歌溉, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留垄懂,地道東北人。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓痛垛,卻偏偏與公主長得像草慧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子匙头,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容