詳解Greenplum的架構(gòu)和技術(shù)特點(diǎn)
摘要:本文介紹了大數(shù)據(jù)引擎Greenplum的架構(gòu)和部分技術(shù)特點(diǎn),從GPDB基本背景開始,在架構(gòu)的層面上講解GPDB系統(tǒng)內(nèi)部各個模塊的概貌,然后圍繞GPDB的自身特性,并行執(zhí)行和運(yùn)維等技術(shù)細(xì)節(jié),闡述了為什么選擇使用Greenplum作為下一代的查詢引擎解決方案。
Greenplum的MPP架構(gòu)
Greenplum(以下簡稱GPDB)是一款開源數(shù)據(jù)倉庫。基于開源的PostgreSQL改造,主要用來處理大規(guī)模數(shù)據(jù)分析任務(wù),相比Hadoop,Greenplum更適合做大數(shù)據(jù)的存儲、計(jì)算和分析引擎。
GPDB是典型的Master/Slave架構(gòu),在Greenplum集群中,存在一個Master節(jié)點(diǎn)和多個Segment節(jié)點(diǎn),其中每個節(jié)點(diǎn)上可以運(yùn)行多個數(shù)據(jù)庫。Greenplum采用shared nothing架構(gòu)(MPP)。典型的Shared Nothing系統(tǒng)會集數(shù)據(jù)庫、內(nèi)存Cache等存儲狀態(tài)的信息;而不在節(jié)點(diǎn)上保存狀態(tài)的信息。節(jié)點(diǎn)之間的信息交互都是通過節(jié)點(diǎn)互聯(lián)網(wǎng)絡(luò)實(shí)現(xiàn)。通過將數(shù)據(jù)分布到多個節(jié)點(diǎn)上來實(shí)現(xiàn)規(guī)模數(shù)據(jù)的存儲,通過并行查詢處理來提高查詢性能。每個節(jié)點(diǎn)僅查詢自己的數(shù)據(jù)。所得到的結(jié)果再經(jīng)過主節(jié)點(diǎn)處理得到最終結(jié)果。通過增加節(jié)點(diǎn)數(shù)目達(dá)到系統(tǒng)線性擴(kuò)展。
圖1 GPDB的基本架構(gòu)
如上圖1為GPDB的基本架構(gòu),客戶端通過網(wǎng)絡(luò)連接到gpdb,其中Master Host是GP的主節(jié)點(diǎn)(客戶端的接入點(diǎn)),Segment Host是子節(jié)點(diǎn)(連接并提交SQL語句的接口),主節(jié)點(diǎn)是不存儲用戶數(shù)據(jù)的,子節(jié)點(diǎn)存儲數(shù)據(jù)并負(fù)責(zé)SQL查詢,主節(jié)點(diǎn)負(fù)責(zé)相應(yīng)客戶端請求并將請求的SQL語句進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換之后調(diào)度后臺的子節(jié)點(diǎn)進(jìn)行查詢,并將查詢結(jié)果返回客戶端。
Greenplum Master
Master只存儲系統(tǒng)元數(shù)據(jù),業(yè)務(wù)數(shù)據(jù)全部分布在Segments上。其作為整個數(shù)據(jù)庫系統(tǒng)的入口,負(fù)責(zé)建立與客戶端的連接,SQL的解析并形成執(zhí)行計(jì)劃,分發(fā)任務(wù)給Segment實(shí)例,并且收集Segment的執(zhí)行結(jié)果。正因?yàn)镸aster不負(fù)責(zé)計(jì)算,所以Master不會成為系統(tǒng)的瓶頸。
Master節(jié)點(diǎn)的高可用(圖2),類似于Hadoop的NameNode HA,如下圖,Standby Master通過synchronization process,保持與Primary Master的catalog和事務(wù)日志一致,當(dāng)Primary Master出現(xiàn)故障時,Standby Master承擔(dān)Master的全部工作。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%