Cloudera Impala 可以直接為存儲在HDFS或HBase中的Hadoop數據提供快速,交互式的SQL查詢。除了使用相同的存儲平臺外, Impala和Apache Hive一樣也使用了相同的元數據,SQL語法(Hive SQL),ODBC驅動和用戶接口(Hue Beeswax),這就很方便的為用戶提供了一個相似并且統一的平臺來進行批量或實時查詢。
一、 Cloudera Impala簡介
Cloudera Impala 可以直接為存儲在HDFS或HBase中的Hadoop數據提供快速,交互式的SQL查詢。除了使用相同的存儲平臺外, Impala和Apache Hive一樣也使用了相同的元數據,SQL語法(Hive SQL),ODBC驅動和用戶接口(Hue Beeswax),這就很方便的為用戶提供了一個相似并且統一的平臺來進行批量或實時查詢。
Cloudera Impala 是用來進行大數據查詢的補充工具。 Impala 并沒有取代像Hive這樣基于MapReduce的分布式處理框架。Hive和其它基于MapReduce的計算框架非常適合長時間運行的批處理作業,例如那些涉及到批量 Extract、Transform、Load ,即需要進行ETL作業。
二、 Impala的優點
Impala 提供了:
- 數據科學家或數據分析師已經熟知的SQL接口
- 能夠在Apache Hadoop 的大數據中進行交互式數據查詢
- Single system for big data processing and analytics so customers can avoid costly modeling and ETL just for analytics
三、在CDH下Cloudera Impala如何工作
下圖顯示了在Cloudera環境中,Impala的定位。

1.Impala 由以下幾部分組成:
Impala State Store :State Store標定了在你的環境中關于impalad實例運行的信息。 此信息用于查找數據,以便于分布式資源對查詢的 響應。
impalad :impalad進程運行在datanodes上,并且響應來自Impala shell的命令,它是Impala的服務端。impalad接受來自數據連接層和***化執行任務調度的請求。impalad會間歇性的更新Impala State Store的名字和地址
Impala shell :Impala shell是Impala的客戶端接口,用來運行查詢命令用來完成管理任務,例如連接Impala的服務端impalad。通過ODBC或JDBC提供了一個標準化的查詢接口來完成查詢的接收和傳遞。
2.利用Impala進行查詢步驟如下:
(1)用戶通過 Hue Beeswax,the Impala shell, 或者ODBC 這樣的客戶端接口來提交查詢請求
(2)Impala 的分布式查詢引擎通過集群來創建和分發查詢任務
(3)每個節點直接讀取本地的HDFS或HBase中的數據來完成部分分布式查詢任務,以提升查詢性能。
(4)impalad將結果返回給客戶端。
四、 Impala的主要特點
Impala的主要特點
Impala提供以下支持:
常見的 Hive標準查詢語言 (HiveQL) ,包括select, joins, and aggregate 功能
HDFS和HBase的存儲格式
HDFS文件格式:TextFile, SequenceFile
壓縮編碼:Snappy, GZIP, BZIP
常見的Hive接口:
- ODBC driver
- Hue Beeswax
- Impala命令行接口
- Kerberos authentication
原文鏈接:http://blog.sina.com.cn/s/blog_475f18640101gw27.html