Apache Impala 架構

banq 發表於 2022-01-23

Impala 是一個大規模並行查詢引擎,可在現有 Hadoop 叢集中的數百臺伺服器上執行。與查詢處理和底層儲存引擎緊密耦合的標準關聯式資料庫管理系統不同,它與後者分離。

Impala 提高了 Apache Hadoop上 SQL 查詢的效率,同時保持了熟悉的使用者介面。Impala 允許您使用 SELECT、JOIN 和聚合函式實時查詢資料,無論是儲存在 HDFS 還是 Apache HBase 中。

Impala 還共享 Apache Hive 的後設資料、SQL 語法 (Hive SQL)、ODBC 驅動程式和使用者介面 (Hue Beeswax),使其成為用於批處理和實時查詢的熟悉且連貫的平臺。(因此,Hive 使用者可以用最少的設定時間使用 Impala。)

 

Impala 部署中有三個服務:

  1. Impala 守護程式( impalad) 服務負責接收客戶端查詢和管理它們在叢集中的執行,以及代表其他 Impala 守護程式執行單個查詢片段。當 Impala 守護程式以第一個角色管理查詢執行時,它被稱為查詢的協調者。另一方面,所有 Impala 守護程式都是對稱的,它們可以扮演任何角色。此屬性有助於負載平衡和容錯。叢集中每個執行資料節點程式的系統——底層 HDFS 部署的塊伺服器——都有一個 Impala 守護程式,因此每臺機器上通常有一個 Impala 守護程式。Impala 現在可以利用資料區域性性並從檔案系統讀取塊,而無需連線到網路。Impala 的後設資料釋出-訂閱服務Statestore(statestored)將叢集範圍的後設資料分發到所有 Impala 程式。
  2. Impala 的目錄儲存庫和後設資料訪問閘道器是Catalog 守護程式(catalogd)。Impala 守護程式可以使用 catalogd 將 DDL 命令傳送到外部目錄儲存,例如 Hive Metastore。statestore 用於將更改分發到系統目錄。
  3. 查詢處理介面:與 Impala 通訊的介面是 Hive Metastore、JDBC/ODBC 客戶端、Impala-shell 和 Hue Web 使用者介面。