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