impala的主要组成部分:
组成部分:1、Impala Daemon(守护进程impalad,核心的进程) 它负责读写数据文件,接收从impala-shell、Hue、JDBC、ODBC等接口发送的查询语句,并行化查询语句和分发工作任务到Impala集群的各个节点上,同时负责将本地计算好的查询结果发送给协调器节点(coordinator node)
2、Statestore (状态商店) 负责和impalad 保持通讯,记录状态,如果节点出现问题,会通知其他节点不往问题节点发送工作任务,由于statestore是当集群节点有问题的时候起通知作用,所以它对Impala集群并不是有关键影响的。如果statestore没有运行或者运行失败,其他节点和分布式任务会照常运行,只是说当节点掉线的时候集群会变得没那么健壮。当statestore恢复正常运行时,它就又开始与其他节点通信并进行监控
3、Impala Catalog,()负责将元数据的变化通知到各个节点,减少REFRESH和INVALIDATE METADATA语句的使用
之前的版本中,当在某个节点上执行了CREATE DATABASE、DROP DATABASE、CREATE TABLE、ALTER TABLE、或者DROP TABLE语句之后,需要在其它的各个节点上执行命令INVALIDATE METADATA来确保元数据信息的更新。同样的,当你在某个节点上执行了INSERT语句,在其它节点上执行查询时就得先执行REFRESH table_name这个操作,这样才能识别到新增的数据文件。
Impala的查询处理过程:
1、提交查询任务
2、提