Impala简介

来源:互联网 发布:淘宝培训班杭州 编辑:程序博客网 时间:2024/06/16 01:43

Impala是SQL ON Hadoop框架,和它类似的有Presto、Drill等,但它和Hive区别较大,请参考下面的介绍。

Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。已有的Hive系统虽然也提供了SQL语义,但由于Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之下,Impala的最大特点也是最大卖点就是它的快速。

优点
  1. 1)Impala不需要把中间结果写入磁盘,省掉了大量的I/O开销。
  2. 2)省掉了MapReduce作业启动的开销。MapReduce启动task的速度很慢(默认每个心跳间隔是3秒钟),Impala直接通过相应的服务进程来进行作业调度,速度快了很多。
  3. 3)Impala完全抛弃了MapReduce这个不太适合做SQL查询的范式,而是像Dremel一样借鉴了MPP并行数据库的思想另起炉灶,因此可做更多的查询优化,从而省掉不必要的shuffle、sort等开销。
  4. 4)通过使用LLVM来统一编译运行时代码,避免了为支持通用编译而带来的不必要开销。
  5. 5)用C++实现,做了很多有针对性的硬件优化,例如使用SSE指令。
  6. 6)使用了支持Data locality的I/O调度机制,尽可能地将数据和计算分配在同一台机器上进行,减少了网络开销。


Impala适合大规模数据的交互式查询,内存要求很高,但它并不太适合海量数据的批处理。因此,常用的方式是使用Hive完成离线批处理过程,之上使用Impala提供交互式即席查询。

原创粉丝点击