相关文章推荐
刚毅的香蕉  ·  OpenSSL 1.1.1-pre1 ...·  1 年前    · 
威武的钥匙扣  ·  Mac mini - Technical ...·  1 年前    · 
愉快的钥匙扣  ·  Nodejs进阶 | ...·  1 年前    · 
忐忑的香菜  ·  QT ComboBox控件 ...·  1 年前    · 

Impala介绍

MPP是massively parallelprocessing(大量并行处理)。
Impala是一种新型的MPP查询引擎,每个SQL会同时在多个工作节点上执行,这些工作节点做查询任务的一部分,然后通过网络传递到下一个子任务,中间结果并不会落地。
Impala可以处理的数据包含:HBASE,HDFS,KUDU。

Impala架构

在这里插入图片描述
架构图展示impala的架构以及Impala sql查询的执行流程。
词汇表:

  • ODBC:open database connection(开放的数据库连接)
  • statement:message synchronization node for impala(消息同步节点)
  • Catalog:Metadata Service Node in impala(元数据服务节点)
  • Impalad:在impala系统中的任务执行节点
  • Query Planner:Query Plan Tree(SQL执行计划生成器)
  • Coordinator:coordinator节点提供外部的查询接口,包含beeswax接口和hiveserver2接口

impala查询计划流程

  1. 发送sql查询到impalad
    客户端通过beeswax或者hiveserver2接口发送sql查询到impalad节点。
  2. 生成单独的和分布式的执行计划
    当被FE模块处理后,通过Analyser依次进行词法分析,语法分析,语义分析,查询重写,生成关于SQL信息,基于这个信息,Planner生成单独的执行计划,这个计划是一个树,包含planNodes和一些sql优化。
  3. 执行分布式计划
    BE生成分布式执行计划树,根据数据分布情况,Fragment分布到不同的Impala节点,每个Impala节点接收Fragment,传递到backend模块,进行Fragment的执行处理。
  4. Fragment之间的数据依赖
    每个Fragment的执行输出通过DataStreamSink发送到下一个Fragment,通过下一个Fragment的ExchangeNode接收。在Fragment操作阶段,当前的运行状态会持续报告到Coordinator节点。
  5. 数据汇总
    查询SQL需要一个单独的Fragment进行数据汇总,这个Fragment仅仅运行在coordinator,多个backends的执行输出会得到汇总,然后转化为ResultSet信息。
  6. 读取查询输出
    客户端调用接口,得到ResultSet,读取查询结果,最终客户端调用CloseOperation关闭查询。
  • FE:在impala代码中C++实现的后端部分
  • BE:在impala代码中Java实现的前端部分
  • Backend:在impala节点中任务执行模块,提供接口为任务执行
  • Analyzer:impalad提供的sql解析器
  • Fragment:一个分布式执行计划的子任务(是执行计划树的子树)
  • ExchangeNode:一个特定的PlanNode,它会处理上一个Fragment传递过来的数据
  • DataStreamSink:这个并不是PlanNode,它的任务是传递当前的Fragment输出到不同节点。

为什么Impala查询比Hive快

  1. 中间结果并不会落地
  2. 查询SQL被解析成可并行执行
Impala介绍MPP是massively parallelprocessing(大量并行处理)。Impala是一种新型的MPP查询引擎,每个SQL会同时在多个工作节点上执行,这些工作节点做查询任务的一部分,然后通过网络传递到下一个子任务,中间结果并不会落地。Impala可以处理的数据包含:HBASE,HDFS,KUDU。Impala架构架构图展示impala的架构以及Impala s...
Impala provides fast, interactive SQL queries directly on your Apache Hadoop data stored in HDFS, HBase, or theAmazon Simple Storage Service (S3). In addition to using the same unified storage platform, Impala also uses thesame metadata, SQL syntax (Hive SQL), ODBC driver, and user interface ( Impala query UI in Hue) as Apache Hive.This provides a familiar and unified platform for real-time or batch-oriented queries Impala 支持对hadoop数据(Hbase\HDFS\S3)高效快速的SQL 查询
形数据结构是我们常见的一种数据结构,比如文件目录、公司组织结构等。但是关系型数据库却没有对应的原生数据结构去存储 查询 这种数据结构,本文介绍了几种实现关系型数据库 形数据存储的方式供大家参考。 形结构是生活中常见的数据结构之一,如公司的组织结构、计算机文件的目录结构和家庭族谱等。本文将以区域作为示例,介绍几种常见的数据库实现 查询 的方式: 形结构的关键属性:深度 方案一、毗邻目录模式(adjacency list model) 毗邻目录模式在 形结构数据的每条记录中,记
我负责的PostgreSQL代码部分: 查询 的编译与执行 此篇博客的分析内容: 查询 优化——生成 计划 查询 优化的整个过程可以分为预处理,生成路径和生成 计划 三个阶段。在上一篇博客中我分析了生成完整 计划 的过程和其中调用的函数在这篇博客中我会分析 查询 优化的最后一步同时也是生成 计划 的最后一步——整理 计划 生成的完整 计划 经过 计划 整理后就可以交给 查询 执行器去执行了,负责整理工作的主函数是set_p lan _references函数。整理计
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 计划 由许多称为 计划 节点的元素组成,这些节点挂在P lan nedStmt结构对应的 计划 上。定义在p lan nodes.h中
postgresql中p lan tree 内存结构 已有 1204 次阅读 2010-5-2 03:01|个人分类:postgresql|系统分类:科研笔记|关键词:postgresql,p lan tree 上次写完了 postgresql中 query tree 内存结构,接下来就是又让你激动,又让你觉得神秘的p lan tree 了。 先看看src/backend/optimizer的r
impala 介绍 MPP什么意思:即大规模并行处理 impala 是一种新型的MPP 查询 引擎,每一个 impala 执行的sql,可能同时在多个工作节点上进行运算,每一个节点执行 查询 任务的一部分,然后通过网络通信传递给下一个子任务,中间数据尽可能不落地。 impala 可以处理的数据:HBASE,HDFS,KUDU impala 架构 这个架构图说明了 impala 的架构,也说明...
1.选择运算应尽可能先做。在优化策略中这是最重要、最基本的一条 2.把投影运算和选择运算同时进行 如有若干投影和选择运算,并且它们都对同一个关系操作,则可以在扫描此关系的同时完成所有的这些运算以避免重复扫描关系 3.把投影同其前或其后的双目运算结合起来 4.把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算