Impala基础知识、使用、优化

本文介绍了Impala的基本概念、优点和与Hive、Hbase的区别。Impala以其快速查询能力区别于Hive,通过避免磁盘IO和MR作业启动开销提供更高的交互性。文章详细讲解了Impala的服务组件,包括Impalad、Statestore和Catalog服务,以及资源管理和优化策略。此外,还探讨了如何使用SQL命令进行操作,并分享了一个通过收集统计信息优化查询性能的案例。最后,讨论了Impala查询Hbase的方法。
摘要由CSDN通过智能技术生成

Impala简介

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

优点

  • Impala不需要把中间结果写入磁盘,省去了大量的io开销
  • 省掉了mr作业启动的开销,mr启动task的速度很慢,impala直接通过响应的服务进程来进行作业调度,速度快了很多。
  • Impala完全抛弃了mr这个不太适合做sql查询的范式,而是想dremel一样借鉴了mpp并行数据库的思想另起炉灶,因此可以更多的查询优化,从而节省掉不必要的shuffle、sort等开销
  • 用c++实现,做了很多针对性的硬件优化,例如使用sse指令
  • 使用了支持data locality的io调度机制,尽可能的将数据和计算分配在同一台机器上进行,减少了网络开销。
  • Hive 基于MapReduce,而启动MapReduce就需要启动jvm,用完了在释放资源,而打开jvm也很耗时间,第二,MapReduce 的运算有分多个步骤,有map阶段,有reduce阶段。有shuffle阶段。每个步骤都会涉及到网络的数据传输,同时每个步骤都会涉及到数据落入磁盘。相当于会增加一个系统的io。我们优化主要就是优化 io读写,网络带宽,尽量减少传输数据。
  • Impala独特地方:数据可以本地执行 ,如果impala访问一个很小的表,那么就没有必要去各个节点去做分布式的查询,只需要在一个几点上做。 这就是impala data locality,这样就尽量减少网络传输【这个功能需要开启】

功能

  • Impala可以根据Apache许可证作为开源免费提供。
  • Impala支持内存中数据处理,它访问/分析存储在Hadoop数据节点上的数据,而无需数据移动。 [2]
  • 使用类SQL查询访问数据。
  • Impala为HDFS中的数据提供了更快的访问。
  • 可以将数据存储在Impala存储系统中,如Apache HBase和Amazon s3。
  • Impala支持各种文件格式,如LZO,序列文件,Avro,RCFile和Parquet。

差异

Impala使用类似于SQL和HiveQL的Query语言。 下表描述了SQL和Impala查询语言之间的一些关键差异

Impala 关系型数据库
Impala使用类似于HiveQL的类似SQL的查询语言。 关系数据库使用SQL语言。
在Impala中,您无法更新或删除单个记录。 在关系数据库中,可以更新或删除单个记录。
Impala不支持事务。 关系数据库支持事务。
Impala不支持索引。 关系数据库支持索引。
Impala存储和管理大量数据(PB)。 与Impala相比,关系数据库处理的数据量较少(TB)。

Hive,Hbase和Impala

虽然Cloudera Impala使用与Hive相同的查询语言,元数据和用户界面,但在某些方面它与Hive和HBase不同。 下表介绍了HBase,Hive和Impala之间的比较分析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值