此文为翻译的文档,英文连接为
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)调用的Driver的execute接口
(2)Step 2:Driver为查询创建会话句柄,并将查询发送给compiler以生成执行计划,
(3)Step 3 and 4:compiler从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安装及详解,及测试,该文档版本是1.2+的。。。。。
Hive中SQL详解
Hive数据查询详解,基础篇
HIVE函数大全,包括目前HIVE可用的所有函数,里面有详细说明。HIVE是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。
自己在大数据培训班学习整理的笔记,比较详细,适合新手学习,我感觉还是挺有帮助的,希望可以帮助到你
hive入门级详解,包括数仓与传统数据库的比对,hive的存储结构与存储原理,分区分桶、hql如何转换成mapreduce、UDF自定义函数等
hive参数配置说明大全,详细说个各个参数的作用用法
18.Hive中HQL的基本语法(二) 19.Hive中order by、sort by、distribute by与cluster by的使用 20.Hive中分析函数与窗口函数 21.Hive中UDF的介绍 22.Hive中使用自定义UDF实现日期格式转换 23. HiveServer2的介绍及三...
Hive语法详解: 包括DDL,DML,DQL语法; Hive内置函数及自定义函数; Hive窗口函数及行列转换; hive常见优化
Hive基础,详解介绍HIVESQL中的语法
Hive编程指南+HIVE从入门到精通+Hive高级编程+Apache Oozie
hive详细介绍ppt
1、MapReduce实现基本SQL操作的原理 1.1 Join的实现原理 1.2 Group By的实现原理 1.3 Distinct的实现原理 2.1 Phase1 SQL词法,语法解析 2.1.1 Antlr 2.1.2 抽象语法树AST Tree 2.1.3 样例SQL ........... ...
Hive视频教程详解及实战视频教程,课程由浅入深,介绍了Hive基本架构及环境部署,带领大家认识数据仓库Hive的优势及Hive具体使用。并通过企业实际需求分析,讲解HiveQL中的DDL和DML的使用,以及常见的性能优化方案。
Hive入门经典教程 Apache Hive 淘宝团队验证
说明:重新排版的个人版Hive语法(一文在手,hql无忧) Hive语法详解: 内容分9个章节 包括安装及配置; DDL,DML,DQL语法; Hive内置函数及自定义函数; Hive窗口函数及行列转换; Hive注意事项及常见优化; ...
NULL 博文链接:https://chengjianxiaoxue.iteye.com/blog/2261339
非常全面的hive参数配置,总共有600多项,中文注释是用软件翻译的,勉强能看,引用请注明出处。
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能(HQL); 其本质是将SQL转换为MapReduce的任务进行运算,底层由HDFS来提供数据的存储,hive可以理解为一个将...
11_离线计算系统_第11天(HIVE详解)v.2 学习必备;1、熟练掌握hive的使用 2、熟练掌握hql的编写 3、理解hive的工作原理 4、具备hive应用实战能力