Impala是一款能够在许多系统上运行的MPP(Massively Parallel Processing,即大规模并行处理)查询执行引擎。impala并不做存储,而是在其他存储软件之上的计算引擎,主要有三个主要组件构成,即Impala daemon(Impalad),Impala Statestore和Impala Catalog Service。
Impala daemon(Impalad)
Impala daemon(也称为impalad)接受来自各种接口的查询,比如impala shell,JDBC或ODBC等,将查询提交到的节点会充当此次查询的协调器节点(可以单独部署几台专门用来接收查询请求的节点)。
接收到查询后,Impalad会读取或写入数据文件,并在Impala集群中的协调其他Impala节点,将工作分发到各个节点来并行化查询,每个节点查询任务完成后会将结果返回到中央协调节点,完成查询。
Impala Statestore
Impala Statestore组件,负责检查每个Impalad的运行状况,Impalad会定期将其运行状况报告给Impala State存储守护程序,当某个节点发生故障时,Statestore会通知所有正常节点,Impalad节点接收到消息后不会向受影响的节点分配查询任务。