应用场景
在使用Hive的过程中,编写了HQL语句,发现HQL执行过程是非常慢的,因为hive采用的是把HQL转化成hadoop的MapReduce任务,然后编译,打包成jar包,分发到各个server上去执行,这个过程会很慢很慢!而impala也可以执行SQL,但是比Hive快很多,而Impala根本不用Hadoop的Mapreduce机制,直接调用HDFS的API获取文件,在内存中快速计算!
但是Impala也并不是完全比Hive好。Impala的容错机制没有Hive好,而且没有Hive那么成熟。
- 所以一般使用以下方法来决定使用哪个:
- 如果是ETL任务使用Hive
如果是实时的热查询则用Impala
1. Impala介绍
Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。已有的Hive系统虽然也提供了SQL语义,但由于Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之下,Impala的最大特点也是最大卖点就是它的快速。
1.1 Impala的优点
- Impala不需要把中间结果写入磁盘,省掉了大量的I/