大数据之Impala介绍

一、介绍

Cloudera 发布实时查询开源项目 Impala (黑斑羚)!多款产品实测表明,比原来基于MapReduce的Hive SQL查询速度提升3~90倍。Impala是Google Dremel的模仿,但在SQL功能上青出于蓝胜于蓝。Impala采用与Hive相同的元数据、SQL语法、ODBC驱动程序和用户接口(Hue Beeswax),这样在使用CDH产品时,批处理和实时查询的平台是统一的。目前支持的文件格式是文本文件和SequenceFiles(可以压缩为Snappy、GZIP和BZIP,前者性能最好)。其他格式如Avro, RCFile, LZO文本和Doug Cutting的Trevni将在正式版中支持。



 

二、概述  

1. Impala是参照谷歌新三篇论文Dremel的开源实现,和Shark、Drill功能相似。Impala 是Cloudera公司主导开发并开源。基于Hive并使用内存进行计算,兼顾数据仓库,具有实时、批处理、多并发等优点。是使用CDH的首选PB级大数据实时查询分析引擎。 

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

三、 特点  

1. 基于内存进行计算,能够对PB级数据进行交互式实时查询、分析  

2. 摒弃了MR计算改用C++编写,有针对性的硬件优化,例如使用SSE指令 

3. 兼容HiveSQL,无缝迁移  

4. 通过使用LLVM来统一编译运行时代码,避免了为支持通用编译而带来的不必要开销。 

5. 支持sql92标准,并具有自己的解析器和优化器。 

6. 具有数据仓库的特性,对hive原有数据做数据分析。 

7. 使用了支持Data locality的I/O调度机制。 

8. 支持列式存储。  

9. 支持jdbc/odbc远程访问。

四、缺点 

1. 基于内存进行计算,对内存依赖性较大 

2. 改用C++编写 ,意味着对C++普通用户不可见。 

3. 基于Hive,与Hive共存亡 

4. 实践中impala的分区数超过一万,性能严重下降,容易出现问题。 

5. 稳定性不如Hive

猜你喜欢

转载自gaojingsong.iteye.com/blog/2332353