自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

聊聊Greenplum集群部署

數(shù)據(jù)庫 MySQL
Greenplum屬于一種看起來“較重”的數(shù)據(jù)庫MPP架構(gòu),不像基于MySQL基于中間件的架構(gòu)那么輕量,但是要說一些具體的場景,比如Greenplum支持存儲過程,支持列式存儲,加上分區(qū)表和內(nèi)置的數(shù)據(jù)分片等多種模式,都是典型的OLAP場景,術(shù)業(yè)有專攻還是有一定道理的。

 [[407450]]

Greenplum屬于一種看起來“較重”的數(shù)據(jù)庫MPP架構(gòu),不像基于MySQL基于中間件的架構(gòu)那么輕量,但是要說一些具體的場景,比如Greenplum支持存儲過程,支持列式存儲,加上分區(qū)表和內(nèi)置的數(shù)據(jù)分片等多種模式,都是典型的OLAP場景,術(shù)業(yè)有專攻還是有一定道理的。

最近因?yàn)闃I(yè)務(wù)需求和改造需要部署幾套GP集群,總體來說也是需要解決以前的一些頑疾并加以改進(jìn),運(yùn)行幾個上百節(jié)點(diǎn)的集群還是有一定的壓力的,不過前幾年在飛祥同學(xué)的勞動成果之上,整個集群還是比較穩(wěn)定的,在運(yùn)行中也發(fā)現(xiàn)了一些額外的問題和痛點(diǎn)。

1)之前的GP segment數(shù)量設(shè)計過度,因?yàn)橘Y源限制,過多考慮了功能和性能,對于集群的穩(wěn)定性和資源平衡性考慮有所欠缺,在每個物理機(jī)節(jié)點(diǎn)上部署了10個Primary,10個Mirror,導(dǎo)致一旦出現(xiàn)Segment節(jié)點(diǎn)不可用,對于整個集群的穩(wěn)定性會是一個大的隱患,最尷尬的莫過于一個Segment節(jié)點(diǎn)不可用,另外一個Segment節(jié)點(diǎn)負(fù)載過高,最后集群不可用,所幸這種情況暫未出現(xiàn)

2)GP集群的存儲資源和性能的平衡不夠。GP存儲對標(biāo)基本都是百TB,相對來說和我們所說的大數(shù)據(jù)體系的PB還是有很大差異的,GP里面計算的數(shù)據(jù)總體都是比較重要,而且總體的存儲容量不會特別大,磁盤現(xiàn)在有8T的規(guī)格,如果放12塊盤,則RAID-5會有近70多T的存儲空間,而RAID-10則有48T左右的空間,如果RAID-5同時壞了2塊盤就尷尬了,但是對于RAID-10來說還是有轉(zhuǎn)機(jī)的,這個情況之前碰到過一次,在替換一塊壞盤的時候,工程師發(fā)現(xiàn)另外一塊盤也快壞了,RAID-5要一塊一塊的換,當(dāng)時還因?yàn)檫@個熬了個通宵,想了很多預(yù)案,說了這么多是想表達(dá),GP存儲的容量不用那么大,如果在損失一定存儲容量的基礎(chǔ)上能夠最大程度降低隱患是很劃算的,所以在存儲容量和性能的綜合之上,我們是選擇了RAID-10

3)集群的驗(yàn)收和保障工作補(bǔ)充。如果一個GP集群用過很長一段時間就會發(fā)現(xiàn)啟停都是一個大工程,之前啟停要耗時半個小時,讓小心臟壓力很大。 這個過程中也發(fā)現(xiàn)了以前遺漏了一些環(huán)節(jié),比如性能壓測,導(dǎo)致不太確定整個集群的支撐能力到底如何。

在此基礎(chǔ)上,還需要額外考慮如下的一些因素:

1)集群的跨機(jī)房遷移如何做到平滑,或者影響最低,之前一次機(jī)房搬遷,導(dǎo)致IP變化后的集群無法啟動,當(dāng)時真是嚇壞了,因?yàn)樵谶@種問題面前,就是0和1的博弈,如果是0就意味著數(shù)據(jù)都丟棄了,所以在這方面還是需要做一些扎實(shí)的鋪墊。

2)服務(wù)器后續(xù)過保要做硬件替換,如何能夠?qū)崿F(xiàn)滾動替換,這是在已有的基礎(chǔ)之上需要前瞻考慮的重要點(diǎn),幾年后的服務(wù)器過保如何應(yīng)對,如果有了可靠的方案,以后也會從容一些。

3)GP的版本和基礎(chǔ)環(huán)境需要同步升級,比如我們目前的主流操作系統(tǒng)為CentOS7,如果繼續(xù)使用CentOS 6就不應(yīng)該了,同時對于GP的版本也需要重新評估,在較新版本和穩(wěn)定版本之間進(jìn)行平衡。

整個GP集群的部署架構(gòu)如下:

Greenplum是我知道的數(shù)據(jù)庫中的角色最完整的。Master,Standby,Primary,Mirror,各種數(shù)據(jù)庫中的不同角色在這里有一套完整的體系命名。

新的這一套環(huán)境注定在我手中構(gòu)建,所以我希望完善以下的一些細(xì)節(jié)。

1)Greenplum的版本選擇,目前有兩個主要的版本類別,一個是開源版(Open Source distribution)和Pivotal官方版,它們的其中一個差異就是官方版需要注冊,簽署協(xié)議,在此基礎(chǔ)上還有GPCC等工具可以用,而開源版本可以實(shí)現(xiàn)源碼編譯或者rpm安裝,無法配置GPCC。綜合來看,我們選擇了開源版本的6.16.2,這其中也詢問了一些行業(yè)朋友,特意選擇了幾個涉及穩(wěn)定性bug修復(fù)的版本。

2)GP的容量規(guī)劃,這一次經(jīng)過討論是選擇了折中的配置,即(6+6)*10+2,具體解釋就是一共12臺服務(wù)器,其中有10臺服務(wù)器是Segment節(jié)點(diǎn),每臺上面部署了6個Primary,6個Mirror,另外2臺部署了Master和Standby

3)內(nèi)核參數(shù)的配置和調(diào)整

除了基礎(chǔ)的kernel.shmmax和kernel.shmall配置之外,還有如下的一些配置需要調(diào)整:

  1. vm.swappiness=10 
  2. vm.zone_reclaim_mode = 0 
  3. vm.dirty_expire_centisecs = 500 
  4. vm.dirty_writeback_centisecs = 100 
  5. vm.dirty_background_ratio = 0 # See System Memory 
  6. vm.dirty_ratio = 0 
  7. vm.dirty_background_bytes = 1610612736 
  8. vm.dirty_bytes = 4294967296 
  9. vm.min_free_kbytes = 3943084 
  10. vm.overcommit_memory=2 
  11. kernel.sem = 500 2048000 200 4096 

集群部署的大體流程:

1)首先是配置/etc/hosts,需要把所有節(jié)點(diǎn)的IP和主機(jī)名都整理出來。

2)配置用戶,很常規(guī)的步驟

  1. groupadd gpadmin 
  2. useradd gpadmin -g gpadmin 
  3. passwd gpadmin 

3)配置sysctl.conf和資源配置

4)使用rpm模式安裝

  1. yum install -y apr apr-util bzip2 krb5-devel  zip 
  2. # rpm -ivh open-source-greenplum-db-6.16.2-rhel7-x86_64.rpm 
  3. Preparing...                          ################################# [100%] 
  4. Updating / installing... 
  5.    1:open-source-greenplum-db-6-6.16.2################################# [100%] 

5)配置兩個host文件,也是為了后面進(jìn)行統(tǒng)一部署方便,在此建議先開啟gpadmin的sudo權(quán)限,可以通過gpssh處理一些較為復(fù)雜的批量操作

6)通過gpssh-exkeys來打通ssh信任關(guān)系,這里需要吐槽這個ssh互信,端口還得是22,否則處理起來很麻煩

  1. gpssh-exkeys -f hostlist 

7)較為復(fù)雜的一步是打包master的Greenplum-db-6.16.2軟件,然后分發(fā)到各個segment機(jī)器中,整個過程涉及文件打包,批量傳輸和配置,可以借助gpscp和gpssh,比如gpscp傳輸文件,如下的命令會傳輸?shù)?tmp目錄下

  1. gpscp -f /usr/local/greenplum-db/conf/hostlist /tmp/greenplum-db-6.16.2.tar.gz =:/tmp 

8)Master節(jié)點(diǎn)需要單獨(dú)配置相關(guān)的目錄,而Segment節(jié)點(diǎn)的目錄可以提前規(guī)劃好,比如我們把Primary和Mirror放在不同的分區(qū)。

  1. mkdir -p /data1/gpdata/gpdatap1  
  2. mkdir -p /data1/gpdata/gpdatap2 
  3. mkdir -p /data2/gpdata/gpdatam1  
  4. mkdir -p /data2/gpdata/gpdatam2 

9)整個過程里最關(guān)鍵的就是gpinitsystem_config配置了,因?yàn)镾egment節(jié)點(diǎn)的ID配置和命名,端口區(qū)間都是根據(jù)一定的規(guī)則來動態(tài)生成的,所以對于目錄的配置需要額外注意。

10)部署GP集群最關(guān)鍵的命令是

gpinitsystem -c gpinitsystem_config -s 【standby_hostname】

整個過程大約5分鐘~10分鐘以內(nèi)會完成。

在此也走了不少彎路,比如一些配置不完整,防火墻權(quán)限不夠,導(dǎo)致部署的時候界面卡在那里,

比如其中一個問題,/etc/hosts 配置不全 導(dǎo)致Primary可以啟動,但是Mirror無法啟動,問題看起來很奇怪,而且從GP的日志里面的信息也很簡略,如果難以定位,還可以直接到相應(yīng)的Segment節(jié)點(diǎn)上查看相應(yīng)的日志,查看日志是個技術(shù)活,如果出現(xiàn)卡頓,不要干等著,得看看后端到底在哪個環(huán)節(jié)卡住了,需要同步查看日志的刷新來進(jìn)行問題的定位和修正,在這方面GP的一些安裝體驗(yàn)還是比較粗糙的。

安裝部署這件事,就像一個無形的門檻,只要自己做過一次,相信這些步驟都很簡單,反之就像一座繞不開的大山,始終繞不過去,對于安裝部署,最全面的文檔還是官方文檔。

責(zé)任編輯:武曉燕 來源: 楊建榮的學(xué)習(xí)筆記
相關(guān)推薦

2024-11-04 15:49:43

Redis?數(shù)據(jù)遷移

2022-05-09 07:35:48

動態(tài)集群限流

2020-04-09 11:56:10

Elasticsear集群硬件

2025-02-24 10:07:09

Redis節(jié)點(diǎn)遷移集群

2022-02-09 15:36:49

Redis主從模式哨兵模式

2014-04-16 10:41:58

Spark

2020-04-21 22:59:50

Redis搭建選舉

2023-04-06 08:00:36

VPC虛擬私有云Amazon

2022-01-26 08:47:17

部署應(yīng)用分布式

2020-06-10 08:55:36

Docker容器工具

2022-08-28 19:36:15

數(shù)據(jù)分片KafkaRocketMQ

2024-04-26 08:28:08

高可用存儲架構(gòu)

2023-04-06 07:09:25

自動化部署Actions

2021-03-02 06:00:05

Docker.NET 5 Dockerfile

2022-01-17 09:18:28

JMeter分布式壓測

2021-01-15 08:07:30

Ceph octopu集群運(yùn)維

2013-07-11 13:39:23

Hadoop

2023-11-07 07:30:18

Hadoop高可用

2017-03-31 14:25:19

手動docker swar集群

2024-10-28 15:40:26

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號