目录
一、Impala概述
Impala是Cloudera公司推出,提供对HDFS、Hbase数据的高性能、低延迟的交互式SQL查询功能。
基于Hive使用内存计算,兼顾数据仓库、具有实时、批处理、多并发等优点
- 与Apache Hive有相同的元数据、SQL语法、ODBC驱动、用户界面
- 能直接对存储在HDFS和HBase中的数据提供快速、交互式SQL查询
是CDH平台首选的PB级大数据实时查询分析引擎
二、Impala优点
- 熟悉的SQL接口
- 能够在Apache Hadoop中查询大量数据
- 集群环境中的分布式查询,以方便扩展和使用成本低廉的商品硬件
- 能够在不同的组件之间共享数据文件,没有复制或导出/导入步骤
- 用于大数据处理和分析的单一系统
三、Impala和Hive
3.1 Impala和Hive的关系
- 基于Hive的大数据分析查询引擎
- 使用Hive的元数据
- 兼容Hive的绝大部分语法
3.2 Impala和Hive的区别
Impala使用独立引擎,而不是MapReduce计算框架
优化技术
- 使用LLVM产生运行代码
- 利用可用的硬件指令
- 选择合适的数据存储格式
- 最大使用内存,中间结果不写磁盘
将执行计划表现为一颗完整的执行计划树
数据流采用拉数据的方式
使用simple-scheduler调度器进行调度
不进行容错处理,发生错误时直接返回
Hive适用于长时间的批处理查询分析,而Impala适用于实时交互式查询
Impala是Cloudera在受到Google的Dremel启发下开发的实时交互SQL大数据查询工具(实时SQL查询引擎Impala),Impala没有再使用缓慢的Hive+MapReduce批处理,而是通过使用与商用并行关系数据库中类似的分布式查询引擎(由Query Planner、Query Coordinator和Query Exec Engine三部分组成),可以直接从HDFS或HBase中用SELECT、JOIN和统计函数查询数据,从而大大降低了延迟。

五、Impala查询过程
Impala主要由Impalad, State Store和CLI组成。
Impalad: 与DataNode运行在同一节点上,由Impalad进程表示,它接收客户端的查询请求(接收查询请求的Impalad为Coordinator,Coordinator通过JNI调用java前端解释SQL查询语句,生成查询计划树,再通过调度器把执行计划分发给具有相应数据的其它Impalad进行执行),读写数据,并行执行查询,并把结果通过网络流式的传送回给Coordinator,由Coordinator返回给客户端。同时Impalad也与State Store保持连接,用于确定哪个Impalad是健康和可以接受新的工作。
在Impalad中启动三个ThriftServer: beeswax_server(连接客户端),hs2_server(借用Hive

Impala是由Cloudera开发的实时交互式SQL查询工具,提供对HDFS和HBase的高性能查询。它与Hive共享元数据和SQL语法,但使用独立的查询引擎,避免了MapReduce的延迟,适合大规模数据的实时分析。Impala通过Impalad、StateStore和CLI组件执行查询,其查询过程包括元数据的增量或全量刷新。此外,Impala支持Java API进行数据操作。
3376

被折叠的 条评论
为什么被折叠?



