Impala-架构与设计

架构与设计

  • 一、背景和起源
  • 二、框架概述
    • 1.设计特点
    • 2.框架优点
    • 3.框架限制
  • 三、架构图
    • 1.Impala Daemon
    • 2.Statestore
    • 3.Catalog
  • 四、Impala查询流程
    • 1.发起查询
    • 2.生成执行计划
    • 3.分配任务
    • 4.交换中间数据
    • 5.汇集结果
    • 6.返回结果
  • 总结
  • 参考链接


一、背景和起源

现有的大数据查询分析工具Hive更适合长时间批处理查询分析,并不能满足实时交互式场景。因此根据谷歌的Dremel设计思想,Cloudera公司开发了一款高效率实时查询工具Impala,其性能比Hive快10到100倍。Impala没有使用MapReduce进行计算,而是将整个查询转化成执行计划树,分发到各个机器执行,然后通过拉的方式获取结果并组合成最终结果。

二、框架概述

Impala是一款基于Hive的大数据分析查询引擎,直接使用Hive的元数据Metastore,因此如果使用Impala需要先安装Hive并启动Metastore服务。Impala不依赖MapReduce而是将执行计划树进行并行计算,使用拉的方式获取结果数据,把结果数据按执行树流是传递汇集,减少中间结果落盘。

1.设计特点

  • 本地化计算、减少数据的网络传输
  • 采用Hive Metastore进行元数据存储和管理
  • 无需进行格式转化
  • 支持即席查询无延迟
  • 采用大规模并行处理架构、硬件利用率高
  • 不依赖MapReduce,并行处理执行计划,避免启动MapReduce开销
  • 结果写入内存并通过网络汇总,节省读写磁盘开销

2.框架优点

  • 基于内存进行计算,适合实时交互式SQL查询和分析
  • 无需转化为MapReduce,直接访问HDFS以及Hbase数据,低延迟

3.框架限制

  • 数据需要写入内存,对内存消耗比较大
  • 没有容错逻辑,如果执行过程发生错误会直接返回错误
  • 不支持UDF定制

三、架构图

在这里插入图片描述
Impala采用MPP架构,主要由Impala Daemon、Statestore和Catalog等三个模块组成。

1.Impala Daemon

接收查询请求,将查询请求生成计划树,分发执行计划到其他节点。进行数据读写,将结果进行汇总并返回。
Impala Daemon服务包含三个模块:Query Planner、Query Coordinator和Query Executor。

2.Statestore

主要是收集集群中所有Deamon的节点信息和健康情况。每个Deamon会从Statestore拉取并缓存所有Deamon相关信息,用于执行计划的分配。

3.Catalog

Impala的元数据服务,集群启动时从Hive Metastore加载元数据信息,如需再次加载需要使用invalidate metadata、refresh命令。Catalog负责接收Statestore的元数据查询请求。在Impala执行SQL导致元数据发生变化时,Catalog会将元数据变化同步给Statestore,再由Statestore广播给所有Daemon节点。

四、Impala查询流程

在这里插入图片描述

1.发起查询

客户端向Impala集群任意节点发送查询SQL语句

2.生成执行计划

Query Planner对查询语句进行解析生成解析树,然后将解析树变成执行计划。

3.分配任务

Query Coordinator根据执行计划和从Statestore获取的集群Daemon节点情况,将任务分配给Query Executor节点进行计算。

4.交换中间数据

Query Executor对计算的中间结果进行交换。

5.汇集结果

Query Coordinator从集群中的Query Executor节点拉取结果并进行汇集。

6.返回结果

Query Coordinator将汇总后的结果返回给客户端。

总结

Impala是大数据进行实时交互式分析查询的一个工具,没有依赖MapReduce执行任务,而是将任务分配到各个Impala节点进行计算和汇总,从而避免了MapReduce的启动时间。直接使用内存进行结果的保存减少了读写磁盘的时间。经过以上架构设计Impala的性能比Hive高出10到100倍,非常适用于即席查询和交互式分析场景。


参考链接

1.Apache Impala
2.Impala: A Modern, Open-Source SQL Engine for Hadoop

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/384288.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构:并查集讲解

并查集 1.并查集原理2.并查集实现3.并查集应用4.并查集的路径压缩 1.并查集原理 在一些应用问题中,需要将n个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元素集合,然后按一定的规律将归于同一组元素的集合合并。在此过程中…

华为 huawei 交换机 接口 MAC 地址学习限制接入用户数量 配置示例

目录 组网需求: 配置思路: 操作步骤: 配置文件: 组网需求: 如 图 2-14 所示,用户网络 1 和用户网络 2 通过 LSW 与 Switch 相连, Switch 连接 LSW 的接口为GE0/0/1 。用户网络 1 和用户网络 2 分别属于 VLAN10 和 V…

没更新的日子也在努力呀,布局2024!

文章目录 ⭐ 没更新的日子也在努力呀⭐ 近期的一个状态 - 已圆满⭐ 又到了2024的许愿时间了⭐ 开发者要如何去 "创富" ⭐ 没更新的日子也在努力呀 感觉很久没有更新视频了,好吧,其实真的很久没有更新短视频了。最近的一两个月真的太忙了&#…

shell脚本之文件处理命令及字符切片处理

目录 一、文件处理工具 1、tr命令 1.1 转换字符 1.2 压缩字符及删除字符 2、seq命令 3、cut命令 ​4、tac命令 5、rev命令 6、sort命令 ​​​​​7、uniq命令 ​8、echo命令 9、date命令 二、字符串切片处理 1、取字符串的长度 2、跳过字符串最前边的字符 3、…

腾讯云4核8G服务器多少钱?轻量和CVM报价2024新版

腾讯云4核8G服务器S5和轻量应用服务器优惠价格表,轻量应用服务器和CVM云服务器均有活动,云服务器CVM标准型S5实例4核8G配置价格15个月1437.3元,5年6490.44元,标准型SA2服务器1444.8元一年,轻量应用服务器4核8G12M带宽一…

Netty应用(三) 之 NIO开发使用 网络编程 多路复用

目录 重要:logback日志的引入以及整合步骤 5.NIO的开发使用 5.1 文件操作 5.1.1 读取文件内容 5.1.2 写入文件内容 5.1.3 文件的复制 5.2 网络编程 5.2.1 accept,read阻塞的NIO编程 5.2.2 把accept,read设置成非阻塞的NIO编程 5.2.3…

WPF中值转换器的使用

什么是值转换器 在WPF(Windows Presentation Foundation)中,值转换器(Value Converter)是一种机制,允许你在绑定时转换绑定源和绑定目标之间的值。值转换器实现了 IValueConverter 接口,该接口…

SSM实现支付宝沙盒支付

文章目录 沙盒支付准备配置测试 沙盒支付 这里用的支付宝的一个沙盒环境,是支付宝提供给开发者测试用的。 下面主要梳理一下,支付功能的实现,其实还是很简单的,因为支付宝都提供好了,我们只要调用接口去传入参数即可…

【后端高频面试题--Linux篇】

🚀 作者 :“码上有前” 🚀 文章简介 :后端高频面试题 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 后端高频面试题--Linux篇 Windows和Linux的区别?Unix和Linux有什么区别&#xff1f…

【原创 附源码】Flutter安卓及iOS海外登录--Google登录最详细流程

最近接触了几个海外登录的平台,踩了很多坑,也总结了很多东西,决定记录下来给路过的兄弟坐个参考,也留着以后留着回顾。更新时间为2024年2月8日,后续集成方式可能会有变动,所以目前的集成流程仅供参考&#…

代码随想录算法训练营第42天(动态规划04 ● 01背包问题,你该了解这些! ● 01背包问题,你该了解这些! 滚动数组 ● 416. 分割等和子集

动态规划part04 01背包问题 二维动态规划五部曲 01背包问题 一维 (没理解动态规划五部曲 416. 分割等和子集解题思路 对于面试的话,其实掌握01背包,和完全背包,就够用了,最多可以再来一个多重背包。 每一件物品其实只有两个状态&a…

使用耳机壳UV树脂制作私模定制耳塞有哪些选择呢?

私模定制耳塞人士的选择可以从以下几个方面考虑: 专业经验:选择有丰富经验的私模定制耳塞人士,能够更好地理解用户需求,提供更专业的建议和服务。可以通过查看其作品和客户评价来了解其经验和口碑。材料质量:选择使用…

模型 AISAS(注意、兴趣、搜索、行动、分享)

系列文章 主要是 分享 思维模型,涉及各个领域,重在提升认知。消费者行为模型。 1 模型AISAS(注意、兴趣、搜索、行动、分享)的应用 1.1 AISAS用于社交媒体营销 假设我们有一家健身中心,想要通过社交媒体营销来吸引新客户。 A(A…

使用耳机壳UV树脂制作私模定制耳塞有什么优点和缺点呢?

使用耳机壳UV树脂制作私模定制耳塞具有以下优点: 个性化定制:UV树脂可以根据用户的耳型进行个性化定制,使耳塞与用户的耳朵形状完美契合,提高舒适度和佩戴稳定性。高强度和耐磨性:UV树脂具有高强度和耐磨性&#xff0…

宿舍报修|宿舍报修小程序|基于微信小程序的宿舍报修系统的设计与实现(源码+数据库+文档)

宿舍报修小程序目录 目录 基于微信小程序的宿舍报修系统的设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户小程序功能模块 2、学生信息管理 3、维修人员管理 4、故障上报管理 5、论坛信息管理 四、数据库设计 1、实体ER图 2、具体的表设计如下所示&…

C++重新入门-C++ 函数

函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。 您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常…

python+flask+django医院预约挂号系统6nrhh

医院预约挂号系统主要有管理员、用户和医生三个功能模块。以下将对这三个功能的作用进行详细的剖析。 技术栈 后端:python 前端:vue.jselementui 框架:django/flask Python版本:python3.7 数据库:mysql5.7 数据库工具…

基于无线传感器网络的LC-DANSE波束形成算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1LC-DANSE算法原理 4.2 LCMV算法原理 5.完整程序 1.程序功能描述 在无线传感器网络中,通过MATLAB对比LC-DANSE波束形成算法和LCMV波束形成算法。对比SNR,mse等指标…

QT学习文件操作类 QFile

(一)QFile QFile 是 Qt 框架中用于文件处理的一个类。它提供了读取和写入文件的功能,支持文本和二进制文件。QFile 继承自 QIODevice ,因此它可以像其他 IO 设备一样使用。 (1)主要功能 1. 文件读写…

深度优先搜索(DFS)与广度优先搜索(BFS):探索图与树的算法

一、引言 在图论和树形结构中,搜索算法是寻找从起点到终点的路径的关键。其中,深度优先搜索(DFS)和广度优先搜索(BFS)是最常用且最基础的两种搜索算法。本文将详细介绍广度优先搜索(BFS&#xf…