CDH大数据

Impala - Impala和Hive的关系

2017-09-07  本文已影响608人  raincoffee

Impala - Impala和Hive的关系

转载:http://www.cnblogs.com/zlslch/p/6785207.html

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

与Hive的关系

Impala 与Hive都是构建在Hadoop之上的数据查询工具各有不同的侧重适应面,但从客户端使用来看Impala与Hive有很多的共同之处,如数据表元数 据、ODBC/JDBC驱动、SQL语法、灵活的文件格式、存储资源池等。Impala与Hive在Hadoop中的关系如下图所示。Hive适合于长时间的批处理查询分析而Impala适合于实时交互式SQL查询,Impala给数据分析人员提供了快速实验、验证想法的大数 据分析工具。可以先使用hive进行数据转换处理,之后使用Impala在Hive处理后的结果数据集上进行快速的数据分析。

img

Impala相对于Hive所使用的优化技术

Impala与Hive的异同

执行计划

数据流

内存使用

调度

容错

适用面

Impala 与Hive都是构建在Hadoop之上的数据查询工具,但是各有不同侧重,那么我们为什么要同时使用这两个工具呢?单独使用Hive或者Impala不可以吗?

一、介绍Impala和Hive

(1)Impala和Hive都是提供对HDFS/Hbase数据进行SQL查询的工具,Hive会转换成MapReduce,借助于YARN进行调度从而实现对HDFS的数据的访问,而Impala直接对HDFS进行数据查询。但是他们都是提供如下的标准SQL语句,在机身里运行。

img

(2)Apache Hive是MapReduce的高级抽象,使用HiveQL,Hive可以生成运行在Hadoop集群的MapReduce或Spark作业。Hive最初由Facebook大约在2007年开发,现在是Apache的开源项目。

Apache Impala是高性能的专用SQL引擎,使用Impala SQL,因为Impala无需借助任何的框架,直接实现对数据块的查询,所以查询延迟毫秒级。Impala受到Google的Dremel项目启发,2012年由Cloudera开发,现在是Apache开源项目。

二、Impala和Hive有什么不同?

(1)Hive有很多的特性:

1、对复杂数据类型(比如arrays和maps)和窗口分析更广泛的支持

2、高扩展性

3、通常用于批处理

(2)Impala更快

1、专业的SQL引擎,提供了5x到50x更好的性能

2、理想的交互式查询和数据分析工具

3、更多的特性正在添加进来

三、高级概述:       

img **

四、为什么要使用Hive和Impala?

1、为数据分析人员带来了海量数据分析能力,不需要软件开发经验,运用已掌握的SQL知识进行数据的分析。

2、比直接写MapReduce或Spark具有更好的生产力,5行HiveQL/Impala SQL等同于200行或更多的Java代码。

3、提供了与其他系统良好的互操作性,比如通过Java和外部脚本扩展,而且很多商业智能工具支持Hive和Impala。

上一篇 下一篇

猜你喜欢

热点阅读