`

Hive学习系列(二)Hive的查询流程详解

    博客分类:
  • Hive
阅读更多

此文为翻译的文档,英文连接为

https://cwiki.apache.org/confluence/display/Hive/Design#Design-HiveArchitecture

 

Hive 查询流程图如下

图中可以看出查询主要组件包含

  • UI(user interface) –用户提交查询或者其他操作,现在标准UI有CLI(command line interface),Thrift Serve,Hive web interface(HWI)。
  • Driver(驱动) –负责接收查询及其他操作,Driver 实现了会话句柄的概念,并提供在基于JDBC / ODBC的execute和fetch API
  • Compiler(编译器) – 解析查询的sql,对不同的块和不同的查询表达式进行语义分析,借助metastore中的表和分区的元数据定义生成执行计划。
  • Metastore –存储所有表及分区的结构信息,包含列名,列的数据类型,读取和写入的序列化器和反序列化器以及相关的HDFS文件存储目录
  • Execution Engine(执行引擎) –执行compiler所产生的执行计划。该执行计划是一个阶段的DAG,执行引擎关联执行计划中不同阶段的之间依赖,并负责在不同的系统组件中执行不同的阶段。

执行流程详细解析

(1)Step 1:UI(user interface)调用Driverexecute接口

(2)Step 2:Driver为查询创建会话句柄,并将查询发送给compiler以生成执行计划,

(3)Step 3 and 4compiler从metastore获取相关的元数据定义

(4)Step 5:元数据用于对查询树中的表达式进行类型检查,以及基于查询谓词调整分区,生成计划

(5)Step 6, 6.1, 6.2 and 6.3:由compiler生成的执行计划是阶段的DAG,每个阶段都会涉及到Map/Reduce job,元数据的操作或者HDFS文件的操作。在Map/Reduce阶段,执行计划包含Map 操作树(操作树在Mappers上执行)和reduce操作树(Reduce 操作树在 Reducers上执行),Execution Engine 将各个阶段提交个适当的组件执行。

(6)Step 7, 8 and 9:在每个任务(mapper / reducer)中,表或者中间输出相关的反序列化器从HDFS读取行,并通过相关的操作树进行传递。一旦这些输出产生,将通过序列化器生成零时的的HDFS文件(这个只发生在只有Map没有reduce的情况),生成的HDFS零时文件用于执行计划后续的Map/Reduce阶段。对于DML操作,零时文件最终移动到表的位置。该方案确保不出现脏数据读取(文件重命名是HDFS中的原子操作),对于查询,临时文件的内容由Execution Engine直接从HDFS读取,作为从Driver Fetch API的一部分

 

这个我现在基于英文做了翻译,后面还的好好看看

 

Hive学习系列(二)Hive的查询流程详解 

 Hive学习系列(一)什么是Hive及Hive的架构

 

分享到:
评论

相关推荐

    HIVE安装及详解

    "HIVE安装及详解" HIVE是一种基于Hadoop的数据仓库工具,主要用于处理和分析大规模数据。下面是关于HIVE的安装及详解。 HIVE基本概念 HIVE是什么?HIVE是一种数据仓库工具,主要用于处理和分析大规模数据。它将...

    基于Hadoop的数据仓库Hive学习指南.doc

    【标题】:“基于Hadoop的数据仓库Hive学习指南” 【描述】:该文档是一份针对Hive的学习资料,旨在引导读者理解如何在Hadoop平台上利用Hive进行数据仓库操作和编程实践。它涵盖了Hive的基本概念、安装步骤、实验...

    Hive SQL 编译过程详解

    理解Hive SQL的编译过程对于解决Hive的问题、优化SQL查询和定制功能至关重要。通过对MapReduce实现SQL操作原理的深入理解,我们可以更好地掌握Hive的工作机制,从而提高数据分析的效率和准确性。在日常工作中,这样...

    hive入门级详解

    Hive 入门级详解 Hive 是一个基于 Hadoop 的数据仓库系统,它提供了一个类似于关系型数据库的查询语言 HQL,并且可以将查询转换为 MapReduce 任务来执行。Hive 的存储结构主要包括三个层面:数据存储层、计算资源层...

    hive数据加载导出查询

    ### Hive 数据加载与导出详解 #### 创建 Hive 表 在使用 Hive 进行数据分析之前,首先需要创建一张表来存储数据。以下是一段创建分区表的 SQL 语句示例: ```sql CREATE TABLE db_0309.emp ( empno INT, ename ...

    Hive中SQL详解

    Hive中SQL详解 Hive是一个基于Hadoop构建的数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop分布式文件系统中的数据。 Hive SQL支持绝大多数的语句,如DDL、DML、聚合函数、连接查询、条件查询等。 ...

    Hive学习笔记

    ### Hive学习笔记——深入理解大数据处理框架 #### HIVE架构详解与Hadoop关系解析 Hive作为基于Hadoop的大数据处理框架,其架构设计旨在简化海量数据的存储、查询和分析过程。它提供了类似SQL的查询语言——HiveQL...

    hive sql详解 经典

    Hive查询会被转换成一系列的MapReduce任务执行,而YARN则负责资源管理和任务调度。 10. **性能优化**: Hive提供了多种性能优化技巧,如预分区、使用Bucketing、SortBy、Storage Handling、压缩和使用Vectorized ...

    HIVE函数详解大全

    在大数据处理领域,Hive 是一个非常重要的工具,它提供了SQL-like的语言来进行数据查询和分析。本篇文章将详细解析Hive中的各种函数,帮助你更好地理解和应用这些功能。 一、关系运算 关系运算用于比较两个或多个...

    Hive数据查询详解.md

    Hive数据查询详解,基础篇

    Hive数据仓库全流程开发

    ### Hive数据仓库全流程开发知识点详解 #### 一、Hive数据仓库概述 - **Hive简介**: - **起源**:Hive是由Facebook开源的一个数据仓库工具,最初设计用于解决海量结构化日志数据的统计问题。 - **功能**:它允许...

    hive学习笔记

    自己在大数据培训班学习整理的笔记,比较详细,适合新手学习,我感觉还是挺有帮助的,希望可以帮助到你

    Hive 入门教程-Apache Hive入门介绍与HQL语法解析

    ### Apache Hive 入门教程详解 #### 一、Hive简介与背景 Hive 是一个构建在 Hadoop 之上的数据仓库基础设施。它的设计目的是为了简化大数据的存储、查询和分析过程。通过引入类似 SQL 的查询语言(HQL),使得传统...

    龙战于野大数据MR原理启动hive查询表分区.docx

    Hive查询表分区的MR原理启动详解 Hive是一款基于Hadoop的数据仓库工具,主要用于处理结构化和半结构化的数据。MR(MapReduce)是Hadoop中的一种编程模型,用于处理大规模数据。在Hive中,MR原理启动是指使用...

    DBeaver链接hive驱动包下载: hive-jdbc-uber-2.6.5.0-292.jar

    《DBeaver与Hive连接:hive-jdbc-uber-2.6.5.0-292.jar驱动详解》 在大数据处理领域,Hive作为一个基于Hadoop的数据仓库工具,广泛用于数据查询和分析。而DBeaver,作为一款跨平台的数据库管理工具,以其用户友好的...

    Hive语法详解

    ### Hive SQL语法详解 #### 一、Hive简介与特性 Hive是一个建立在Hadoop之上的数据仓库工具,主要用于对存储在Hadoop文件系统(HDFS)中的数据进行数据分析和处理。它提供了类似SQL的查询语言——Hive SQL,使得...

    hive查询优化

    ### Hive查询优化详解 #### 一、Hive基础与架构 **Hive**作为Hadoop生态中的重要组成部分,被广泛应用于大数据分析领域。它通过提供类SQL语言(HiveQL)来简化对Hadoop分布式文件系统(HDFS)中存储的大规模数据集...

    Hive的案例详解.pdf

    ### Hive的案例详解 #### 一、Hive概述 Hive是基于Hadoop的一个数据仓库工具,主要用于数据的提取、转换、加载(ETL),它能够将结构化的数据文件映射为数据库表,并提供SQL查询功能,从而将SQL语句转化为...

    【63课时完整版】大数据实践HIVE详解及实战

    18.Hive中HQL的基本语法(二) 19.Hive中order by、sort by、distribute by与cluster by的使用 20.Hive中分析函数与窗口函数 21.Hive中UDF的介绍 22.Hive中使用自定义UDF实现日期格式转换 23. HiveServer2的介绍及三...

Global site tag (gtag.js) - Google Analytics