一、三大核心组件

(1)Impala StateStore 主要优化点: 优化线程数

负责收集分布在集群中各个impalad进程的资源信息,各节点健康状况、同步节点信息.
负责query的调度.
对于一个正常运转的集群,并不是一个关键进程.

(2)Impala Catalog Server
把impala表的metadata分发到各个impalad中
接收来自statestore的所有请求

(3)Impala Daemon: 主要优化内存
impala 核心组成部分之一 impalad ,它是impala的一个启动进程.impalad 运行在集群中的每一个独立节点机器上。应用impala必须启动impalad进程。
impalad 负责读写数据文件,接受来自impala-shell发送的sql 、command 、Hue、JDBC、ODBC请求,并行执行查询和分布式工作在集群节点上,也负责传输汇总查询的结果返回 协调器节点上。用户可以在任何集群节点上提交查询请求。
用户在impala集群上的 某个节点提交数据处理请求 则该节点称为 coordinator node (协调器 节点),其他的集群节点传输其中的部分处理数据到该coordinator node,coordinator node 负责构建最终的结果数据返回给用户。当用户通过impala-shell 提交函数的时候,也可以很方便的连接到同样的impalad 进程。
impala 支持在提交任务的时候(采用JDBC ,ODBC 方式) 采用round-robin  算法来实现负载均衡,将任务提交到不同的 节点上,构建不同的 coordinator node
impalad 进程通过持续的和statestore 通信来确认自己所在的节点是否健康 和是否可以接受新的任务请求

二、Impala架构

(1)Impala 架构采用无中心设计
Impala002-Impala架构_其他

(2)Impala组件列表
Impala002-Impala架构_数据_02


三、Impala 架构分析
(1) 查询流程图
Impala002-Impala架构_数据_03
(2)查询关键步骤
Impala002-Impala架构_数据_04