Impala——1.概述

標籤(空格分隔): 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執行的查詢處理如下:

  1. 用戶應用程序通過ODBC或JDBC向Impala發送SQL查詢,這些驅動提供標準化查詢接口。用戶應用程序可以連接到羣集中的任何impalad。這個impalad成了查詢的協調員。
  2. Impala解析查詢並對其進行分析,以確定impalad實例需要執行哪些任務在整個集羣。計劃執行以實現最佳效率。
  3. 本地impalad實例訪問HDFS和HBase等服務以提供數據。
  4. 每個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身份驗證。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章