impala 架構(gòu)

2018-01-03 16:02 更新

Impala是在Hadoop集群中的許多系統(tǒng)上運行的MPP(大規(guī)模并行處理)查詢執(zhí)行引擎。 與傳統(tǒng)存儲系統(tǒng)不同,impala與其存儲引擎解耦。 它有三個主要組件,即Impala daemon(Impalad),Impala Statestore和Impala元數(shù)據(jù)或metastore。

帕拉架構(gòu)

Impala daemon(Impalad)

Impala daemon(也稱為impalad)在安裝Impala的每個節(jié)點上運行。 它接受來自各種接口的查詢,如impala shell,hue browser等...并處理它們。

每當(dāng)將查詢提交到特定節(jié)點上的impalad時,該節(jié)點充當(dāng)該查詢的“協(xié)調(diào)器節(jié)點”。 Impalad還在其他節(jié)點上運行多個查詢。 接受查詢后,Impalad讀取和寫入數(shù)據(jù)文件,并通過將工作分發(fā)到Impala集群中的其他Impala節(jié)點來并行化查詢。 當(dāng)查詢處理各種Impalad實例時,所有查詢都將結(jié)果返回到中央?yún)f(xié)調(diào)節(jié)點。

根據(jù)需要,可以將查詢提交到專用Impalad或以負載平衡方式提交到集群中的另一Impalad。

Impala 存儲的狀態(tài)

Impala有另一個稱為Impala State存儲的重要組件,它負責(zé)檢查每個Impalad的運行狀況,然后經(jīng)常將每個Impala Daemon運行狀況中繼給其他守護程序。 這可以在運行Impala服務(wù)器或群集中的其他節(jié)點的同一節(jié)點上運行。
Impala State存儲守護進程的名稱為存儲的狀態(tài)。 Impalad將其運行狀況報告給Impala State存儲守護程序,即存儲的狀態(tài)。
在由于任何原因?qū)е鹿?jié)點故障的情況下,Statestore將更新所有其他節(jié)點關(guān)于此故障,并且一旦此類通知可用于其他impalad,則其他Impala守護程序不會向受影響的節(jié)點分配任何進一步的查詢。

Impala元數(shù)據(jù)和元存儲

Impala元數(shù)據(jù)和元存儲是另一個重要組件。 Impala使用傳統(tǒng)的MySQL或PostgreSQL數(shù)據(jù)庫來存儲表定義。 諸如表和列信息和表定義的重要細節(jié)存儲在稱為元存儲的集中式數(shù)據(jù)庫中。
每個Impala節(jié)點在本地緩存所有元數(shù)據(jù)。 當(dāng)處理極大量的數(shù)據(jù)和/或許多分區(qū)時,獲得表特定的元數(shù)據(jù)可能需要大量的時間。 因此,本地存儲的元數(shù)據(jù)緩存有助于立即提供這樣的信息。
當(dāng)表定義或表數(shù)據(jù)更新時,其他Impala后臺進程必須通過檢索最新元數(shù)據(jù)來更新其元數(shù)據(jù)緩存,然后對相關(guān)表發(fā)出新查詢。

查詢處理接口

要處理查詢,Impala提供了三個接口,如下所示。

  • Impala-shell - 使用Cloudera VM設(shè)置Impala后,可以通過在編輯器中鍵入impala-shell命令來啟動Impala shell。 我們將在后續(xù)章節(jié)中更多地討論Impala shell。

  • Hue界面 - 您可以使用Hue瀏覽器處理Impala查詢。 在Hue瀏覽器中,您有Impala查詢編輯器,您可以在其中鍵入和執(zhí)行impala查詢。 要訪問此編輯器,首先,您需要登錄到Hue瀏覽器。

  • ODBC / JDBC驅(qū)動程序 - 與其他數(shù)據(jù)庫一樣,Impala提供ODBC / JDBC驅(qū)動程序。 使用這些驅(qū)動程序,您可以通過支持這些驅(qū)動程序的編程語言連接到impala,并構(gòu)建使用這些編程語言在impala中處理查詢的應(yīng)用程序。

查詢執(zhí)行過程

每當(dāng)用戶使用提供的任何接口傳遞查詢時,集群中的Impalads之一就會接受該查詢。 此Impalad被視為該特定查詢的協(xié)調(diào)程序。
在接收到查詢后,查詢協(xié)調(diào)器使用Hive元存儲中的表模式驗證查詢是否合適。 稍后,它從HDFS名稱節(jié)點收集關(guān)于執(zhí)行查詢所需的數(shù)據(jù)的位置的信息,并將該信息發(fā)送到其他impalad以便執(zhí)行查詢。
所有其他Impala守護程序讀取指定的數(shù)據(jù)塊并處理查詢。 一旦所有守護程序完成其任務(wù),查詢協(xié)調(diào)器將收集結(jié)果并將其傳遞給用戶。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號