Impala学习-基础概念

Impala学习-基础概念

系列文章目录

  1. Impala学习-基础概念
  2. Impala学习-JDBC配置

1 摘要

这篇文章主要是参考CDH 14年的一个Impala分享文档。
未完待续。

2 简介

Impala是一个开源的关系型查询引擎,执行查询SQL。数据是追加式的,没有修改和删除。

Impala属于MPP架构,查询分布在多个节点中执行,拥有并行查询能力(每个节点,每个集群)。

Impala是一个编译器,他依赖HDFS,使用外部元数据:hive metastore

3 架构

Impala架构
在这里插入图片描述

3.1 前台

前台交互代码使用java,这部分代码实现的逻辑都不是对性能表现至关重要的。

  • 数据库对象:
    fe/src/main/java/com/cloudera/impala/analysis/
  • 执行计划部分
    fe/src/main/java/com/cloudera/impala/planner/

3.2 后台

后台代码使用c++,大部分代码对性能表现至关重要。特别是如下部分:

  • 在节点上执行计划分片
  • 服务实现
    • ImpalaD service
      ImpalaD是查询协调者和计划碎片执行者
    • StateStore
    • Catalog Service
      元数据服务

4 SQL执行流程

在这里插入图片描述

  1. ImpalaShell或Hue或JDBC Driver方式访问Impala 的某个Query Planner
  2. Query Planner查询解析,将SQL翻译为抽象语法树,匹配元数据,并构建物理执行计划发给Query Coordinator
  3. 因为是MPP架构,所以将执行计划按节点切分成分片,并将切分后的计划分片分发给本Query Executor节点和其他Query Executor节点
  4. 开始执行计划分片
  5. 执行完成后,返回给发起者节点的Query Coordinator聚合最终结果## 0x04 架构

参考文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值