官术网_书友最值得收藏!

1.2.1 極簡架構(gòu)

從設(shè)計上來說,Doris融合了Google Mesa的數(shù)據(jù)存儲模型、Apache的ORCFile存儲格式、Apache Impala的查詢引擎和MySQL交互協(xié)議,是一個擁有先進(jìn)技術(shù)和先進(jìn)架構(gòu)的領(lǐng)先設(shè)計產(chǎn)品,如圖1-4所示。

圖1-4 Doris技術(shù)分解

在架構(gòu)方面,Doris只有兩類進(jìn)程:一類是FE,可以理解為Doris的管理節(jié)點,主要負(fù)責(zé)用戶請求的接入、查詢計劃的解析、元數(shù)據(jù)的存儲和集群管理相關(guān)工作;另一類是BE,主要負(fù)責(zé)數(shù)據(jù)存儲、查詢計劃執(zhí)行。這兩類進(jìn)程都可以橫向擴展。除此之外,Doris不依賴任何第三方系統(tǒng)(如HDFS、ZooKeeper等)。這種高度集成的架構(gòu)極大地降低了運維成本。

FE節(jié)點包含Leader、Follower和Observer三種角色。默認(rèn)一個集群只能有一個Leader,可以有多個Follower和Observer。其中,Leader和Follower組成一個Paxos選擇組,如果Leader宕機,剩下的Follower會自動選出新的Leader,保證寫入高可用。Observer同步Leader的數(shù)據(jù),但是不參加選舉。如果只部署一個FE,F(xiàn)E默認(rèn)就是Leader。

FE節(jié)點主要包含存儲管理模塊、狀態(tài)管理模塊、協(xié)調(diào)模塊、元數(shù)據(jù)模塊和元數(shù)據(jù)緩存模塊。存儲管理模塊負(fù)責(zé)管理所有的元數(shù)據(jù)信息,包括表信息、Tablet信息、Tablet的副本信息等,還負(fù)責(zé)管理用戶的權(quán)限信息(即用戶的認(rèn)證信息和授權(quán)信息)和數(shù)據(jù)的導(dǎo)入任務(wù)等。狀態(tài)管理模塊負(fù)責(zé)管理所有BE進(jìn)程的存活狀態(tài)、查詢負(fù)載等非持久化信息,并提供發(fā)布訂閱接口。協(xié)調(diào)模塊負(fù)責(zé)接收用戶發(fā)來的請求,然后進(jìn)行語句解析、生成執(zhí)行規(guī)劃,根據(jù)當(dāng)前集群的狀態(tài),對執(zhí)行規(guī)劃進(jìn)行調(diào)度。元數(shù)據(jù)模塊負(fù)責(zé)對元數(shù)據(jù)的讀寫,只有Leader角色擁有此權(quán)限。元數(shù)據(jù)緩存模塊負(fù)責(zé)同步元數(shù)據(jù),以供語句解析、生成執(zhí)行規(guī)劃,主要是Follower和Observer角色擁有此權(quán)限。

BE節(jié)點可以無限擴展,并且所有BE節(jié)點的角色都是對等的。在集群足夠大的情況下,部分BE節(jié)點下線不影響集群提供服務(wù)。BE節(jié)點主要由存儲引擎和查詢執(zhí)行器組成。存儲引擎負(fù)責(zé)管理節(jié)點本地的Tablet數(shù)據(jù),發(fā)送或者接收數(shù)據(jù)并保存副本,定期合并、更新多個版本的數(shù)據(jù),以減少存儲占用。存儲引擎還負(fù)責(zé)接收來自查詢執(zhí)行器的數(shù)據(jù)讀取請求和批量數(shù)據(jù)導(dǎo)入請求。在MPP集群中執(zhí)行查詢時,會分解為一個樹狀的執(zhí)行樹,由Coordinator來協(xié)調(diào)執(zhí)行,樹的葉子節(jié)點也叫計劃片斷(PlanFragment),每個PlanFragment分配一個BE節(jié)點的查詢執(zhí)行器。

主站蜘蛛池模板: 特克斯县| 泸州市| 内黄县| 肇州县| 海丰县| 逊克县| 美姑县| 乌鲁木齐县| 惠州市| 塘沽区| 新巴尔虎右旗| 德保县| 湘乡市| 原阳县| 五莲县| 莒南县| 灌阳县| 通辽市| 大同县| 千阳县| 德庆县| 黄山市| 宁武县| 且末县| 富蕴县| 凤翔县| 三明市| 红桥区| 黄梅县| 宿迁市| 武宣县| 高安市| 松桃| 修武县| 丹巴县| 通河县| 赤水市| 额尔古纳市| 日土县| 屯留县| 刚察县|