Impala
一、简介
Cloudera公司推出,提供对HDFS、Hbase数据的高性能、低延迟的交互式SQL查询功能
基于Hive使用内存计算,兼顾数据仓库、具有实时、批处理、多并发等优点
是CDH平台首选的PB级大数据实时查询分析引擎
二、架构
无主模型
Impalad数量 = DataNode数量 DataNode负责存数据,Impalad负责计算
客户端可以预估数据量的大小,来指定适合的Impala
Hive、HDFS 是外部进入Impala的入口
Impala 负责计算、解析、协调
Statestore 收集并广播所有Impala拓扑信息到每个Impala
Catalog 1 在集群启动时,将Hive全量表数据全copy来传给Statestore,再由Statestore广播给每个Impala
2 因为Impala是基于内存计算,所以在进行表操作的时候,每个Impala除了进行相关的表操作,
还要将数据操作写入Catalog,再由Catalog进行反馈给Hive,进行数据变更(Impala持久化)
三、优/劣势
优
1、基于内存进行计算,能够对PB级数据进行交互式实时查询、分析
2、无需转换为MR,直接读取HDFS数据
3、C++编写,LLVM统一编译运行
4、兼容HiveSQL
5、具有数据仓库的特性,
可对hive数据直接做数据分析
6、支持Data Local
7、支持列式存储
8、支持JDBC/ODBC远程访问
劣
1、对内存依赖大
2、C++编写 开源?!
3、完全依赖于Hive
4、实践过程中 分区超过1w 性能严重下降
内存依赖大
2、C++编写 开源?!
3、完全依赖于Hive
4、实践过程中 分区超过1w 性能严重下降
5、定性不如Hive,很多HSQL支持的语法在Impala中无法实现