中共貴州省委組織部 朱懿 邵柱
Greenplum數(shù)據(jù)庫(kù)是建立在postgreSQL基礎(chǔ)上的開(kāi)源標(biāo)準(zhǔn)數(shù)據(jù)庫(kù),它能存儲(chǔ)并高效管理龐大的數(shù)據(jù)量,外部應(yīng)用通過(guò)統(tǒng)一SQL 接口訪(fǎng)問(wèn)數(shù)據(jù),內(nèi)部則由多個(gè)服務(wù)器組成功能強(qiáng)大的集群協(xié)同工作。
Greenplum 數(shù)據(jù)庫(kù)不僅可以使用SQL 語(yǔ)句分析結(jié)構(gòu)化數(shù)據(jù),還提供了建立在PostgreSQL 基礎(chǔ)上的模塊和擴(kuò)展應(yīng)用,這些模塊和擴(kuò)展應(yīng)用可用于數(shù)據(jù)庫(kù)機(jī)器學(xué)習(xí)、人工智能、地理空間分析等,并且支持使用Python、R、Java、Perl、C、C++語(yǔ)言創(chuàng)建用戶(hù)自定義函數(shù)。
Greenplum 數(shù)據(jù)庫(kù)是同類(lèi)產(chǎn)品中唯一一個(gè)擁有大量分發(fā)安裝包的開(kāi)源產(chǎn)品,而且隨著Greenplum 數(shù)據(jù)庫(kù)5.3 版本的發(fā)布,在Ubuntu系統(tǒng)上編譯生成了完整的安裝包,使整個(gè)安裝過(guò)程變得更加簡(jiǎn)單。Greenplum 數(shù)據(jù)庫(kù)(Ubuntu 版)安裝包被托管在Ubuntu 的個(gè)人軟件包文檔系統(tǒng)(Personal Package Archive 系統(tǒng))上。
依托這個(gè)包管理機(jī)制,社區(qū)內(nèi)的成員可以很方便地發(fā)布安裝包,任何一個(gè)接入互聯(lián)網(wǎng)的系統(tǒng)都可以安裝這些安裝包。
圖1 添加環(huán)境變量
首先,請(qǐng)確保已經(jīng)選擇好Greenplum支持Ubuntu操作系統(tǒng)版 本。本文撰寫(xiě)時(shí),Greenplum數(shù)據(jù)庫(kù)支持的是Ubuntu 16.04LTS(Long Term Support:團(tuán)隊(duì)長(zhǎng)期支持)版本。
各位讀者可以訪(fǎng)問(wèn)Greenplum 官網(wǎng)了解Greenplum 最新支持的操作系統(tǒng)版本,在下面的案例中,本文將以Ubuntu 16.04LTS為例。在Ubuntu 安裝完成后的具體操作如下:
1.添加并生效環(huán)境變量(命令:vi .bashrc、source bashrc),如圖1 所示。
2.關(guān)閉防火墻(命令:ufw disable)。
3.添加Greenplum PPA 庫(kù)到Ubuntu 系 統(tǒng)的更新源地址池(命令:sudo addapt-repository ppa:greenplum/db),如圖2 所示。
4.從最近添加的更新源地址池中檢索信息,結(jié)果顯示如圖3(命令:sudo apt-get update)。
5.安裝Greenplum 數(shù)據(jù)庫(kù)軟件,結(jié)果如圖4所 示(命 令:sudo apt-get install greenplum-dboss)。
上述命令將自動(dòng)在系統(tǒng)上安裝Greenplum 數(shù)據(jù)庫(kù)軟件及所需的所有依賴(lài),并將安裝好的軟件放在/opt/gpdb 路徑中,結(jié)果如圖5 所示。
圖2 更新源地址
圖3 更新檢索信息
圖4 安裝數(shù)據(jù)庫(kù)軟件
圖5 自動(dòng)安裝并放在相應(yīng)路徑中
圖6 加載環(huán)境變量
6.將Greenpl um 軟件加載到環(huán)境變量中,結(jié)果如圖6 所示(命令:./opt/gpdb/greenplum_path.sh)。
7.生效系統(tǒng)環(huán)境變量(命令:source.bashrc)。
8.通過(guò)使用Which 命令進(jìn)行測(cè)試,可以看到軟件的安裝路徑?,F(xiàn)在可以將Greenplum 集群配置模板文件復(fù)制到本地目錄中進(jìn)行編輯(命令cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_singlenode)。
9.創(chuàng)建DATA_DIRECTORY目錄(命令:mkdir -p/data/primary1/;mkdir -p/data/primary2/;mkdir-p/data/greenplum/gpdata/gpmaster)。
10.新建hostlist_singlenode 這個(gè)文件并在里面保存外部應(yīng)用訪(fǎng)問(wèn)的主機(jī)名稱(chēng)master。
11.對(duì)gpinitsystem_singlenode 文件進(jìn)行如下編輯,如圖7 所示:
(1)更新MACHINE_LIST_FILE=./hostlist_singlenode 這一行:
(2)將declare -a DATA_DIRECTORY=(/gpdata1/gpdata2) 改為declare-a DATA_DIRECTORY==(/data/primary1/ /data/primary2/)。
請(qǐng)確保第9 步中的相關(guān)目錄已創(chuàng)建成功。
(3)將MASTER_HOSTNAME=hostname_of_machine 修改為MASTER_HOSTNAME=master,以用來(lái)保存外部應(yīng)用訪(fǎng)問(wèn)的主機(jī)名稱(chēng),如圖8 所示。
(4)更新進(jìn)入主機(jī)的數(shù)據(jù)目錄。
圖7 對(duì)文件進(jìn)行編輯
圖8 保存主機(jī)名稱(chēng)
將MASTER_DIRECTORY=/gpmaster 修改為MASTER_DIRECTORY=data/greenplum/gpdata/gpmaster
通過(guò)以上步驟,初始化準(zhǔn)備工作已就緒,現(xiàn)在我們關(guān)閉文件并開(kāi)始初始化集群。
通過(guò)這些配置,一個(gè)master segmengt 主機(jī)和兩個(gè)primary segment 服務(wù)器的群集已經(jīng)部署完成。
在更高級(jí)的安裝過(guò)程中,可以在另一臺(tái)主機(jī)上配置備用 的master 和segment 鏡像,數(shù)據(jù)將會(huì)分布式存儲(chǔ)在primary segment 之間,同時(shí)在mirror segement 中生成primary segement 中的數(shù)據(jù)的鏡像,這一切都是自動(dòng)完成的。
12.首先,通過(guò)執(zhí)行下面的命令來(lái)確保ssh 密鑰完成交換(命令:gpssh-exchkeys-fhostlist_singlenode)。
然后,再通過(guò)執(zhí)行下面的命令啟動(dòng)集群(命令:gpinitsystem-cgpinitsystem_singlenode)。在命令執(zhí)行過(guò)程中,該程序請(qǐng)求確認(rèn)下一步的操作。
以上就是Greenplum 全部的安裝步驟,下面你可以創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),登錄數(shù)據(jù)庫(kù)并開(kāi)始查詢(xún)信息、插入信息。
1.為保證整個(gè)安裝過(guò)程順利進(jìn)行,在安裝Ubuntu 系統(tǒng)時(shí)請(qǐng)注意勾選download updates while installing ubuntu 以 及 install third-party software for graphics and wi-fi hardware,flash,mp3 and other media 兩個(gè)選項(xiàng)。
2.為保證數(shù)據(jù)庫(kù)安裝過(guò)程順利,請(qǐng)?zhí)崆瓣P(guān)閉Ubuntu系統(tǒng)的防火墻。