Apache Presto - 架構



Presto 的架構與經典的 MPP(大規模並行處理)DBMS 架構幾乎相同。下圖說明了 Presto 的架構。

Presto Architecture

上圖包含不同的元件。下表詳細描述了每個元件。

序號 元件及描述
1.

客戶端

客戶端(Presto CLI)將 SQL 語句提交給協調器以獲取結果。

2.

協調器

協調器是主守護程序。協調器最初解析 SQL 查詢,然後分析和計劃查詢執行。排程程式執行管道執行,將工作分配給最接近的節點並監控進度。

3.

聯結器

儲存外掛稱為聯結器。Hive、HBase、MySQL、Cassandra 等充當聯結器;或者您也可以實現自定義聯結器。聯結器為查詢提供元資料和資料。協調器使用聯結器獲取元資料以構建查詢計劃。

4.

工作節點

協調器將任務分配給工作節點。工作節點從聯結器獲取實際資料。最後,工作節點將結果傳遞給客戶端。

Presto - 工作流程

Presto 是一個在節點叢集上執行的分散式系統。Presto 的分散式查詢引擎針對互動式分析進行了最佳化,並支援標準 ANSI SQL,包括複雜查詢、聚合、聯接和視窗函式。Presto 架構簡單且可擴充套件。Presto 客戶端(CLI)將 SQL 語句提交給主守護程序協調器。

排程程式透過執行管道連線。排程程式將工作分配給最接近資料的節點並監控進度。協調器將任務分配給多個工作節點,最後工作節點將結果返回給客戶端。客戶端從輸出程序中提取資料。可擴充套件性是關鍵設計。可插拔聯結器(如 Hive、HBase、MySQL 等)為查詢提供元資料和資料。Presto 採用“簡單的儲存抽象”設計,使其能夠輕鬆地針對這些不同型別的資料來源提供 SQL 查詢功能。

執行模型

Presto 支援自定義查詢和執行引擎,以及旨在支援 SQL 語義的運算子。除了改進的排程之外,所有處理都在記憶體中進行,並在不同階段的網路之間進行流水線處理。這避免了不必要的 I/O 延遲開銷。

廣告

© . All rights reserved.