说明,感谢亮哥长期对我的帮助,此处多篇文章均为亮哥带我整理。以及参考诸多博主的文章。如果侵权,请及时指出,我会立马停止该行为;如有不足之处,还请大佬不吝指教,以期共同进步。
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处理后的结果数据集上进行快速的数据分析