Impala是Cloudera公司主導開發的新型查詢系統,它提供SQL語義,能查詢存儲在Hadoop的hdfs和HBase中的PB級大數據。已有的hive系統雖然也提供了SQL語義,但由于Hive底層執行使用的是MapReduce引擎,仍然是一個批處理過程,難以滿足查詢的交互性。相比之下,Impala的最大特點也是最大賣點就是它的快速。
優點
Impala不需要把中間結果寫入磁盤,省掉了大量的I/O開銷。
通過使用LLVM來統一編譯運行時代碼,避免了為支持通用編譯而帶來的不必要開銷。
用C++實現,做了很多有針對性的硬件優化,例如使用SSE指令。
1.
Impala不需要把中間結果寫入磁盤,省掉了大量的I/O開銷。
2.
省掉了MapReduce作業啟動的開銷。MapReduce啟動task的速度很慢(默認每個心跳間隔是3秒鐘),Impala直接通過相應的服務進程來進行作業調度,速度快了很多。
3.
Impala完全拋棄了MapReduce這個不太適合做SQL查詢的范式,而是像Dremel一樣借鑒了MPP并行數據庫的思想另起爐灶,因此可做更多的查詢優化,從而省掉不必要的shuffle、sort等開銷。
4.
通過使用LLVM來統一編譯運行時代碼,避免了為支持通用編譯而帶來的不必要開銷。
5.
用C++實現,做了很多有針對性的硬件優化,例如使用SSE指令。
6.
使用了支持Data locality的I/O調度機制,盡可能地將數據和計算分配在同一臺機器上進行,減少了網絡開銷。
功能
??Impala可以根據Apache許可證作為開源免費提供。
??Impala支持內存中數據處理,它訪問/分析存儲在Hadoop數據節點上的數據,而無需數據移動。
??使用類SQL查詢訪問數據。
??Impala為HDFS中的數據提供了更快的訪問。
??可以將數據存儲在Impala存儲系統中,如Apache HBase和Amazon s3。
??Impala支持各種文件格式,如LZO,序列文件,Avro,RCFile和Parquet。
參考資料 >