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