
1、Impala簡介
• Cloudera公司推出,提供對HDFS、Hbase數據的高性能、低延遲的交互式SQL查詢功能。
• 基於Hive使用內存計算,兼顧數據倉庫、具有實時、批處理、多並發等優點
• 是CDH平台首選的PB級大數據實時查詢分析引擎
官網:http://www.cloudera.com/products/apache-hadoop/impala.html
http://www.impala.io/index.html
下面是在基於單用戶和多用戶查詢的時候,不同的查詢分析器所使用的時間:

2、Impala的特點
• 1、基於內存進行計算,能夠對PB級數據進行交互式實時查詢、分析
• 2、無需轉換為MR,直接讀取HDFS數據
• 3、C++編寫,LLVM統一編譯運行
• 4、兼容HiveSQL
• 5、具有數據倉庫的特性,可對hive數據直接做數據分析
• 6、支持Data Local
• 7、支持列式存儲
• 8、支持JDBC/ODBC遠程訪問
(相比於Hive,Impala不需要啟動MapReduce直接同HDFS或HBase進行交互)
3、Impala 劣勢
• 1、對內存依賴大
• 2、C++編寫 開源?!
• 3、完全依賴於hive
• 4、實踐過程中 分區超過1w 性能嚴重下下降
• 5、穩定性不如hive
4、Impala安裝
• 安裝方式:
– 1、ClouderaManager
– 2、手動安裝(待續)

可以使用CDH安裝,方便快捷,而且管理起來更加方便,下面是CDH安裝以后的CDH管理界面:

5、Impala核心組件
• Statestore Daemon
• 實例*1 - statestored
– 負責收集分布在集群中各個impalad進程的資源信息、各節點健康狀況,同步節點信息.
– 負責query的調度
• Catalog Daemon
• 實例*1 - catalogd
– 分發表的元數據信息到各個impalad中
– 接收來自statestore的所有請求
• Impala Daemon
• 實例*N – impalad
– 接收client、hue、jdbc或者odbc請求、Query執行並返回給中心協調節點
– 子節點上的守護進程,負責向statestore保持通信,匯報工作
6、Impala架構

(1) 由Client發送一個執行SQL到任意一台Impalad的Query Planner
(2) 由Query Planner 把SQL發向Query Coordinator
(3) 由Query Coordinator 來調度分配任務到Impalad的所有節點
(4) 各個Impalad節點的Query Executor 進行執行SQL工作
(5) 執行SQL結束以后,將結果返回給Query Coordinator
(6) 再由Query Coordinator 將結果返回給Client
