impala系列:impala架构

​Impala是一款能够在许多系统上运行的MPP(Massively Parallel Processing,即大规模并行处理)查询执行引擎。​impala并不做存储,而是在其他存储软件之上的计算引擎,主要有三个主要组件构成,即Impala daemon(Impalad),Impala Statestore和Impala Catalog Service。
impala系列:impala架构_第1张图片

Impala daemon(Impalad)

Impala daemon(也称为impalad)接受来自各种接口的查询,比如impala shell,JDBC或ODBC等,将查询提交到的节点会充当此次查询的协调器节点(可以单独部署几台专门用来接收查询请求的节点)。

接收到查询后,Impalad会读取或写入数据文件,并在Impala集群中的协调其他Impala节点,将工作分发到各个节点来并行化查询,每个节点查询任务完成后会将结果返回到中央协调节点,完成查询。

Impala Statestore

Impala Statestore组件,负责检查每个Impalad的运行状况,Impalad会定期将其运行状况报告给Impala State存储守护程序,当某个节点发生故障时,Statestore会通知所有正常节点,Impalad节点接收到消息后不会向受影响的节点分配查询​任务。

Impala Catalog Service

该节点用于存储impala中的表的元信息,比如分区信息,表的创建信息等等,使用MySQL存储,当处理极大量的数据和/或许多分区时,获得表特定的元数据可能需要大量的时间, 因此,Catalog Service会在本地存储的所有的元数据,这样有助于提高获取元信息的效率。

查询处理接口

要处理查询,Impala提供了三个接口,如下所示。
Impala-shell - 直接通过在命令行中键入impala-shell命令来启动。
ODBC / JDBC驱动程序 - Impala提供ODBC / JDBC驱动包。 可以构建使用这些编程语言在impala中处理查询的应用程序。

查询执行过程

  1. 集群中的某一个​Impalad会接收到查询的请求,该节点被视为coordinator。
  2. 使用Hive metastore中的表模式验证查询语法,验证通过后从HDFS namenode节点收集关于执行查询所需的数据的位置的信息。
  3. coordinator将hdfs中的数据信息同步到其他节点,实际运行查询的Impalad读取指定的数据块并处理查询。
  4. coordinator会等待并收集所有impalad查询结果,并将其传递给用户。

你可能感兴趣的:(大数据,impala,大数据)