|
Hive作为比较流行的数据仓库分析工具之一,得到了广泛的应用,但是,由于Hive在采用MapReduce执行引擎时,是使用MapReduce来完成批量数据处理,而MapReduce是一个面向批处理的非实时计算框架,因此,实时性不好,查询延迟较高,不能满足查询的实时交互性。Impala作为开源大数据分析引擎,支持实时计算,它提供了与Hive类似的功能,并在性能上比Hive高出3~30倍。 Impala是由Cloudera公司开发的查询系统,它提供了SQL语义,能查询存储在Hadoop的HDFS和HBase上的PB级别海量数据。Impala最初是参照Dremel系统进行设计的,Dremel系统是由Google公司开发的交互式数据分析系统,可以在2-3秒内分析PB级别的海量数据。所以,Impala也可以实现大数据的快速查询。 需要指出的是,虽然Impala的实时查询性能要比Hive好很多,但是,Impala的目的并不在于替换现有的包括Hive在内的MapReduce工具,而是提供一个统一的平台用于实时查询。事实上,Impala的运行依然需要依赖于Hive的元数据。 与Hive类似,Impala也可以直接与HDFS和HBase进行交互。当采用MapReduce 作为执行引擎时,Hive底层执行使用的是MapReduce,所以主要用于处理长时间运行的批处理任务,例如批量提取、转化、加载类型的任务。而Impala则采用了与商用MPP并行关系数据库类似的分布式查询引擎,可以直接从HDFS或者HBase中用SQL语句查询数据,而不需要把SQL语句转化成MapReduce任务来执行,从而大大降低了延迟,可以很好地满足实时查询的要求。另外,Impala和Hive采用相同的SQL语法、ODBC驱动程序和用户接口。 【出处】林子雨.大数据导论.人民邮电出版社,2020年9月第1版.
|