天天看點

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身份驗證。