impala三大组件
-
impalad ⻆⾊名称为Impala Daemon
- Impalad服务由三个模块组成:Query Planner、Query Coordinator和Query Executor,前两个
模块组成前端,负责接收SQL查询请求,解析SQL并转换成执⾏计划,交由后端执⾏。 - 负责读写数据⽂件,接收来⾃Impala-shell,JDBC,ODBC等的查询请求,并将查询结果返回给中⼼协调者
- 子节点上的守护进程,Impalad进程会⼀直与statestore保持通信,汇报工作。
-
statestored statestore进程名为statestored
- statestore监控集群中Impalad的健康状况,并将集群健康信息同步给Impalad
- 负责query的调度(需要通过该组件进行任务分配)
-
catalogd catalog服务对应进程名称是catalogd
- Impala执⾏的SQL语句引发元数据发⽣变化时,catalog服务负责把这些元数据的变化同步给其它Impalad进程(⽇志验证,监控statestore进程⽇志)
- 接收来自statestore的所有请求
- 由于⼀个集群需要⼀个catalogd以及⼀个statestored进程,⽽且catalogd进程所有请求都是经过statestored进程发送,所以官⽅建议让statestored进程与catalogd进程安排同个节点。
注:impala启动的时候就会吧hive的源数据信息抽取到catalog中,中间hive如果有跟新源数据,这时候impala是没有去获取的所以是无感知的。
然后impala跟新源数据信息后会广播到其他impala中,所以其他impala知道,并且还会跟新到hive的源数据信息,所以hive也知道
impala查询