Impala Daemon
这个进程是运行在集群每个节点上的守护进程,是Impala的核心组件,它负责读写数据文件,接收来自impala-shell/Hue/JDBC/ODBC的查询请求。
可以向任何一个Impala Daemon节点发送查询请求,收到请求的节点将作为协调者节点,它协调其他节点进行查询,最终将结果返回。
Impala Statestore
Statestore搜集集群中Impala Daemon节点的健康状况,并不断的将健康状况的结果转发给所有其他Daemon节点,这样协调者节点就不会将请求发到不可用的节点。一个Impala集群只需要一个Statestore节点。
Impala Catalog
当Impala集群中执行的SQL语句会引起元数据变化时,catalog服务负责将这些变化推送到其他Daemon节点上。
通常情况下,如果在一个Daemon节点上执行了CREATE DATABASE,DROP DATABASE,CREATE TABLE,ALTER TABLE,DROP TABLE语句,在其他Daemon节点运行一个查询之前总是要执行INVALIDATE METADATA语句同步对象的元数据信息。同样的道理,如果在一个Daemon节点执行INSERT语句,其他节点在运行一个查询之前需要执行REFRESH table_name,以便让这个节点知道这个表有新增的数据文件。当通过impala执行可能引起元数据变化的语句时,catalog服务确保不必再执行REFRESH/INVALIDATE METADATA这样的元数据同步语句。但是如果是通过Hive进行创建表,加载数据等类似的操作时,还是需要执行的。