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