You need to enable JavaScript to run this app.
导航

Impala 概述

最近更新时间2022.10.24 14:21:05

首次发布时间2022.10.24 14:21:05

Apache Impala 项目为存储在 Apache Hadoop 文件格式下的数据,提供了高性能、低延迟的 SQL 查询。它对查询进行快速响应,同时支持对分析查询进行交互式的数据探索和查询调整,而不是传统上那种与 SQL-on-Hadoop 技术相关联的长时间批量作业。

Impala 与 Apache Hive 数据库集成,在两个组件之间共享数据库和表。与 Hive 的高度集成,以及与 HiveQL 语法的兼容性,可以使用 Impala 或 Hive 创建表、发起查询、加载数据等。

1 Impala 优点

为了避免延迟,Impala 没有使用 MapReduce,而是使用 MPP 架构的分布式查询引擎直接访问数据。
Impala 相对于 Hadoop 上 SQL 查询,有以下几个优点:

  • 支持 SQL 查询,快速查询大数据。

  • 可以对已有数据进行查询,减少数据的加载,转换。

  • 多种存储格式可以供您选择(Parquet, Text, Avro, RCFile, SequeenceFile)。

  • 可以与 Hive 配合使用。

Impala的详细信息,请参见Apache Impala

2 架构

火山引擎 E-MapReduce(EMR) 中 Impala 的架构如下图。

Impala组件如下:

组件
说明

Impalad

部署在 Core 节点和 Task 节点,允许扩容和缩容。
Impalad 负责读取和写入数据文件,接收从 impala-shell 命令、Hue、JDBC 或 ODBC 等接口发送的查询语句,并行查询语句和分发工作任务到集群的各个 Impala 节点上,同时负责将本地计算好的查询结果发送回协调器节点(Coordinator Node)。

Statestored

部署在 Master 节点的 master-1 机器。
Statestored 负责管理集群中所有 Impalad 进程的健康状态,并将状况结果转发到所有 Impalad 进程。当某一个 Impalad 进程由于节点异常、网络异常或软件问题等导致节点不可用时,Statestored 确保将状况结果通知其他 Impalad 进程,当有新的查询请求时, Impalad 进程将不会发送查询请求到该不可用的节点。

Catalogd

部署在 Master 节点的 master-1 机器。
Catalogd 负责将每个 Impalad 进程上的元数据变动同步到集群内其他 Impalad 进程。由于所有的请求都是通过 Statestored 进程传递的,所以建议 Statestored 和 Catalogd 运行在同一个节点上。

HaProxy

部署在 Master 节点的 master-1机器。
负责代理连接集群中各 Impalad 节点,转发查询请求。