說明,感謝亮哥長期對我的幫助,此處多篇文章均爲亮哥帶我整理。以及參考諸多博主的文章。如果侵權,請及時指出,我會立馬停止該行爲;如有不足之處,還請大佬不吝指教,以期共同進步。
1.Impala
1.1 簡介
Impala是由Cloudera公司開發的新型查詢系統,能夠對存儲在HDFS、HBase以及S3上的數據進行快速的交互式SQL查詢。
另外,impala與Hive使用了統一的存儲系統、同樣的元數據庫、SQL語法(Hive SQL)、ODBC驅動和用戶交互接口(Hue),
Impala對實時的或者面向批處理的查詢提供了一個統一的平臺,Impala在性能上比Hive高出3~30倍。
1.2 優勢及特點
優勢
(1)使用的是數據科學家和分析師熟悉的SQL接口
(2)能查詢大數據集
(3)是集羣環境中的分佈式查詢,便於擴展和使用廉價商用硬件
(4)能夠在不同的分析引擎之前共享數據。
(5)單一系統用於大數據處理和分析,因此可以避免成本高昂的建模和ETL.
主要特點
(1)支持Hive查詢語言(HiveQL)最常見的SQL-92功能
(2)支持HDFS, HBase和S3存儲
(3)常見的數據訪問接口,包括JDBC driver、ODBC driver
(4)支持impala-shell命令行接口
(5)Kerberos授權
1.3 Impala架構?如何啓動訪問?
Impala Daemon
Impala Statestore
Impala Catalog Service
1.4 Hive與Impala對比
相同點
(1)Hive與Impala使用相同的存儲數據池,都支持把數據存儲於HDFS和HBase中
(2)Hive與Impala使用相同的元數據
(3)Hive與Impala中對SQL的解釋處理比較相似,都是通過詞法分析生成執行計劃
不同點
(1)Hive適合於長時間的批處理查詢分析,而Impala適合於實時交互式SQL查詢
(2)Hive依賴於MapReduce計算框架,Impala把執行計劃表現爲一棵完整的執行計劃樹,直接分發執行計劃到各個Impalad執行查詢
(3)Hive在執行過程中,如果內存放不下所有數據,則會使用外存,以保證查詢能順序執行完成,而Impala在遇到內存放不下數據時,不會利用外存,所以Impala目前處理查詢時會受到一定的限制
總結
1)Impala的目的不在於替換現有的MapReduce工具
(2)把Hive與Impala配合使用效果最佳
(3)可以先使用Hive進行數據轉換處理,之後再使用Impala在Hive處理後的結果數據集上進行快速的數據分析