1. 系统架构图
2. 系统模块说明
impalad
impala集群中有多个impalad服务,接收用户请求的impalad为Coordinator角色。Coordinator接收到请求之后通过JNI调用Java解释SQL查询语句,生成查询计划树,再通过调度器将执行计划分发给Executor角色的impalad服务执行查询,Executor计算出结果返回给Coordinator,最终由Coordinator返回给客户端。 impala代码模块分类be/fe两个模块。 be模块使用c++代码编写,主要负责请求接入及Coordinator,Executor两个角色的逻辑。fe模块使用java编写,主要负责sql解析,查询计划生成。
catalogd
catalogd为impala集群的元数据服务,执行DDL语句时,会将对应的请求发送到catalogd执行,最终将DDL元数据信息存储到hive metastore中。
statestored
同步集群中的impalad的健康状态信息,单节点部署。
3. 接入支持
impala支持通过impala-shell,jdbc,odbc的方式进行进入,执行sql查询。
4. 存储支持
支持hdfs,kudu,hbase,s3等存储的数据查询扫描。