什么是Impala
Cloudera公司推出,提供对HDFS、HBase数据的高性能、低延迟的交互式SQL查询功能。
基于Hive,使用内存计算,兼顾数据仓库、具有实时、批处理、多并发等优点。
是CDH平台首选的PB级大数据实时查询分析引擎。
Impala的优缺点
优点
1)基于内存运算,不需要把中间结果写入磁盘,省掉了大量的I/O开销。
2)无需转换为Mapreduce,直接访问存储在HDFS,HBase中的数据进行作业调度,速度快。
3)使用了支持Data locality的I/O调度机制,尽可能地将数据和计算分配在同一台机器上进行,减少了网络开销。
4)支持各种文件格式,如TEXTFILE 、SEQUENCEFILE 、RCFile、Parquet。
5)可以访问hive的metastore,对hive数据直接做数据分析。
缺点
1)对内存的依赖大,且完全依赖于hive。
2)实践中,分区超过1万,性能严重下降。
3)只能读取文本文件,而不能直接读取自定义二进制文件。
4)每当新的记录/文件被添加到HDFS中的数据目录时,该表需要被刷新。
Impala的架构
从上图可以看出,Impala自身包含三个模块:Impalad、Statestore和Catalog,除此之外它还依赖Hive Metastore和HDFS。
1)impalad:
接收client的请求、Query执行并返回给中心协调节点;
子节点上的守护进程,负责向statestore保持通信,汇报工作。
2)Catalog:
分发表的元数据信息到各个impalad中;
接收来自statestore的所有请求。
3)Statestore:
负责收集分布在集群中各个impalad进程的资源信息、各节点健康状况,同步节点信息;
Impala的安装
1)Impala的官网
http://impala.apache.org/
2)Impala文档查看
http://impala.apache.org/impala-docs.html
3)下载地址
http://impala.apache.org/downloads.html