Hadoop的数据仓库框架-Hive和Impala比较

软件工程

  Hadoop的数据仓库框架-Hive 基础知识及快速入门

  大数据技术文章汇总-Hadoop、MapReduce、Storm、Spark、Flink

  Hive和Impala的关系

  Impala是Cloudera在受到Google的Dremel启发下开发的实时交互SQL大数据查询工具,Impala没有再使用缓慢的Hive+MapReduce批处理,而是通过使用与商用并行关系数据库中类似的分布式查询引擎(由Query Planner、Query Coordinator和Query Exec Engine三部分组成),可以直接从HDFS或HBase中用SELECT、JOIN和统计函数查询数据,从而大大降低了延迟。

  Impala是基于Hive的大数据实时分析查询引擎,直接使用Hive的元数据库Metadata,意味着Impala元数据都存储在Hive的metastore中。并且Impala兼容Hive的SQL解析,实现了Hive的SQL语义的子集。

  Hive和Impala的不同点

  1. Hive适合于长时间的批处理查询分析,而Impala适合于实时交互式SQL查询。

  2. Hive 依赖于MapReduce 计算框架,Impala 把执行计划表现为一颗完整的执行计划树,直接分发执行计划给各个Impalad 执行查询。

  3. Hive 在执行过程中,如果内存发不下所有数据则会使用外存,以保证查询能顺利执行完成;Impala 在遇到内存放不下数据时,不会利用外存,所以Impala 目前处理查询时会受到一定的限制。

  Hive 和 Impala 的相同点

  1. Hive 与 Impala 使用相同的存储数据池,都把数据存储于HDFS和HBase中。

  2. Hive 与 Impala 使用相同的元数据。

  3. Hive 与 Impala 中对SQL的解释处理比较相似,都是通过词法分析生成执行计划。

  Impala 的目的并不是替换现有的MapReduce 工具。把 Hive 和Impala配合使用效果更佳,可以先使用Hive 进行数据转换处理,之后再使用Impala在Hive 处理后的结果数据集上进行快速的数据分析。

标签: 软件工程