概述
Impala是Cloudera提供的⼀款开源的针对HDFS和HBASE中的PB级别数据进⾏交互式实时查询(Impala 速度快)
Impala是参照⾕歌的新三篇论⽂当中的Dremel实现⽽来,其中旧三篇论⽂分别是 (BigTable,GFS,MapReduce)分别对应我们即将学的HBase和已经学过的HDFS以及MapReduce。
Impala 最⼤卖点和最⼤特点就是 快速 , Impala 中⽂翻译是⾼⻆羚⽺
Impala的诞⽣
之前学习的Hive以及MR适合离线批处理,但是对交互式查询的场景⽆能为⼒(要求快速响应),所以为了 解决查询速度的问题,Cloudera公司依据Google的Dremel开发了Impala,
Impala抛弃了MapReduce 使⽤了类似于传统的MPP数据库技术,⼤⼤提⾼了查询的速度。
Impala与Hive对⽐分析
查询过程
Hive :在 Hive 中,每个查询都有⼀个 “ 冷启动 ” 的常⻅问题。( map,reduce 每次都要启动关闭,申 请资源,释放资源。。。)Impala : Impala 避免了任何可能的启动开销,这是⼀种本地查询语⾔。 因为要始终处理查询,则 Impala守护程序进程总是在集群启动之后就准备就绪。守护进程在集群启动之后可以接收查询任 务并执⾏查询任务。
中间结果
Hive : Hive 通过 MR 引擎实现所有中间结果,中间结果需要落盘,这对降低数据处理速度有不利影 响。Impala :在执⾏程序之间使⽤流的⽅式传输中间结果,避免数据落盘。尽可能使⽤内存避免磁盘 开销
交互查询