OLAP-Impala-原理

1 Impala理论

1.1 Impala简介    

Impala由Cloudera公司推出,提供对HDFS、Hbase数据的高性能、低延迟的交互式SQL查询功能,且基于Hive使用内存计算,兼顾数据仓库、具有实时、批处理、多并发等优点,是CDH平台首选的PB级大数据实时查询分析引擎。

其静态架构如下:

Impala daemon(执行节点)

    Impala daemon(也称为impalad)在安装Impala的每个节点上运行。 它接受来自各种接口的查询,如impala shell,hue browser等...并处理它们。每当将查询提交到特定节点上的impalad时,该节点充当该查询的“协调器节点”。 Impalad还在其他节点上运行多个查询。 接受查询后,Impalad读取和写入数据文件,并通过将工作分发到Impala集群中的其他Impala节点来并行化查询。 当查询处理各种Impalad实例时,所有查询都将结果返回到中央协调节点。根据需要,可以将查询提交到专用Impalad或以负载平衡方式提交到集群中的另一Impalad。

Impala statestore(存储状态)

    Impala有另一个称为Impala State存储的重要组件,它负责检查每个Impalad的运行状况,然后经常将每个Impala Daemon运行状况中继给其他守护程序。 这可以在运行Impala服务器或群集中的其他节点的同一节点上运行。Impala State存储守护进程的名称为存储的状态。 Impalad将其运行状况报告给Impala State存储守护程序,即存储的状态。在由于任何原因导致节点故障的情况下,Statestore将更新所有其他节点关于此故障,并且一旦此类通知可用于其他impalad,则其他Impala守护程序不会向受影响的节点分配任何进一步的查询。

Impala metastore(元数据)

    Impala元数据和元存储是另一个重要组件。 Impala使用传统的MySQL或PostgreSQL数据库来存储表定义。 诸如表和列信息和表定义的重要细节存储在称为元存储的集中式数据库中。每个Impala节点在本地缓存所有元数据。 当处理极大量的数据和/或许多分区时,获得表特定的元数据可能需要大量的时间。 因此,本地存储的元数据缓存有助于立即提供这样的信息。当表定义或表数据更新时,其他Impala后台进程必须通过检索最新元数据来更新其元数据缓存,然后对相关表发出新查询。

1.2 Impala特点

  • 基于内存进行计算,能够对PB级数据进行交互式实时查询、分析
  • 无需转换为MR,直接读取HDFS数据
  • C++编写,LLVM统一编译运行
  • 兼容HiveSQL
  • 具有数据仓库的特性,可对hive数据直接做数据分析
  • 支持Data Local
  • 支持列式存储
  • 支持JDBC/ODBC远程访问                           

1.3 Impala劣势

  • 对内存依赖大
  • 完全依赖于hive
  • 实践过程中 分区超过1w 性能严重下下降
  • 稳定性不如hive

2 Impala解决的问题

Impala通过使用标准组件(如HDFS,HBase,Metastore,YARN和Sentry)将传统分析数据库的SQL支持和多用户性能与Apache Hadoop的可扩展性和灵活性相结合。

  • 使用Impala,与其他SQL引擎(如Hive)相比,用户可以使用SQL查询以更快的方式与HDFS或HBase进行通信。
  • Impala可以读取Hadoop使用的几乎所有文件格式,如Parquet,Avro,RCFile。

Impala将相同的元数据,SQL语法(Hive SQL),ODBC驱动程序和用户界面(Hue Beeswax)用作Apache Hive,为面向批量或实时查询提供熟悉且统一的平台。与Apache Hive不同,Impala不基于MapReduce算法。 它实现了一个基于守护进程的分布式架构,它负责在同一台机器上运行的查询执行的所有方面。因此,它减少了使用MapReduce的延迟,这使Impala比Apache Hive快。

3 Impala的交互架构

 

  1. 由Client发送一个执行SQL到任意一台Impalad的Query Planner
  2. 由Query Planner 把SQL发向Query Coordinator 
  3. 由Query Coordinator 来调度分配任务到Impalad的所有节点
  4. 各个Impalad节点的Query Executor 进行执行SQL工作 
  5. 执行SQL结束以后,将结果返回给Query Coordinator
  6. 再由Query Coordinator 将结果返回给Client

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值