標籤(空格分隔): Impala
Impala是什麼
Impala對存儲在HDFS,HBase的Apache Hadoop數據和存儲在Amazon S3上的數據提供快速,交互式的SQL查詢。 除了使用相同的統一存儲平臺外,Impala還使用了與Apache Hive相同的元數據、SQL語法(Hive SQL)、ODBC驅動程序和UI(Hue中的Impala查詢UI)。
這爲實時查詢或面向批處理的查詢提供了熟悉且統一的平臺。
Impala是可用於查詢大數據的工具的補充。Impala不會取代構建在MapReduce上的批處理框架,如Hive。 基於MapReduce構建的Hive和其他框架最適合
長時間運行的批處理作業,例如涉及批處理ETL類型的作業。。
使用Impala的好處
Impala提供:
- 數據科學家和分析師熟悉的SQL界面。
- 能夠在Apache Hadoop中查詢大量數據(“大數據”)。
- 在集羣環境中進行分佈式查詢,以便於擴展和使用具有成本效益的普通硬件。
- 能夠在不同組件之間共享數據文件,無需複製或導出/導入步驟; 例如,可以使用Pig寫數據,使用Hive進行轉換並使用Impala進行查詢。 Impala可以讀取和寫入Hive表,也支持使用Impala進行簡單的數據內部交換,以便對Hive生成的數據進行分析。
- 用於大數據處理和分析的單一系統,因此客戶可以避免昂貴的建模和ETL
分析。
Impala如何工作在Hadoop上
Impala解決方案由以下組件組成:
- 客戶端Clients - 實體包括Hue,ODBC客戶端,JDBC客戶端和Impala Shell都可以與Impala進行交互。
這些界面通常用於發出查詢或完成管理任務,例如連接到Impala。 - Hive Metastore - 存儲有關Impala可用數據的信息。例如,Metastore讓Impala知道可用的數據庫以及這些數據庫的結構。比如你可以通過Impala SQL語句創建、刪除和更改schema,將數據加載到表中等等,相關的元數據更改都是通過Impala 1.2中引入的專用目錄服務自動向所有Impala節點廣播。
- Impala - 此進程在DataNode上運行,協調和執行查詢。Impala的每個實例都可以從Impala客戶端接收、計劃和協調查詢。查詢分佈在Impala節點上,
這些節點然後充當worker執行並行查詢片段。 - HBase和HDFS - 要查詢的數據的存儲。
使用Impala執行的查詢處理如下:
- 用戶應用程序通過ODBC或JDBC向Impala發送SQL查詢,這些驅動提供標準化查詢接口。用戶應用程序可以連接到羣集中的任何impalad。這個impalad成了查詢的協調員。
- Impala解析查詢並對其進行分析,以確定impalad實例需要執行哪些任務在整個集羣。計劃執行以實現最佳效率。
- 本地impalad實例訪問HDFS和HBase等服務以提供數據。
- 每個impalad將數據返回給協調impalad,後者將這些結果發送給客戶端client。
基本的Impala特性
Impala爲以下方面提供支持:
- Hive查詢語言(HiveQL)的最常見SQL-92功能,包括SELECT,join和aggregate函數。
-
HDFS,HBase和Amazon Simple Storage System(S3)存儲,包括:
- HDFS文件格式:CSV,Parquet,Avro,SequenceFile和RCFile。
- 壓縮編解碼器:Snappy,GZIP,Deflate,BZIP。
-
通用數據訪問接口,包括:
- JDBC驅動程序。
- ODBC驅動程序。
- Hue Beeswax和Impala Query UI。
- impala-shell命令行界面。
- Kerberos身份驗證。