2023学年完整公开课版Limit执行原理_第1页
2023学年完整公开课版Limit执行原理_第2页
2023学年完整公开课版Limit执行原理_第3页
2023学年完整公开课版Limit执行原理_第4页
2023学年完整公开课版Limit执行原理_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

limit执行原理介绍执行计划0102Limit执行原理Content目录01

介绍执行计划介绍执行计划Hive-SQL的执行计划主要用来描述SQL实际执行的整体过程。

我们在写Hive-SQL的时候,并不是直接在Hive上面跑出结果,而是通过Hive这样一个组件,翻译成MapReduce能理解的语句,在MapReduce上面运行,得出结果,再返回。

有时候我们写SQL会产生比较慢的查询结果,其原因可能单纯地从SQL语法上看不出问题,此时如果能够理解执行计划,知道Hive-SQL翻译成MapReduce的执行语句的过程,就能够更好地定位问题并调优。在Hive里,可以通过“explain+SQL语句”的方式查询得到SQL运行时的执行计划。执行计划语法基本语法:EXPLAIN[EXTENDED|DEPENDENCY|AUTHORIZATION|LOCKS|VECTORIZATION]queryextended输出更加详细的信息denpendency输出依赖的数据源authorization输出执行sql授权信息locks输出锁情况vectorization相关02

Limit执行原理Limit执行原理在hive查询中要限制查询输出条数,可以用limit关键词指定。

如selectcolumnname1fromtable1limit10;

这样hive将输出符合查询条件的10个记录。

从根本上说,hive是hadoop提交作业的客户端,它使用antlr词法语法分析工具,对SQL进行分析优化后翻译成一系列MapReduce作业,向hadoop提交运行作业以得到结果。

Hive执行计划分析Limit执行原理改执行计划显示,Stage-1是一个MR程序,且只有map过程,没有reduce过程,也就是说在Map过程就直接将结果输出到HDFS文件系统,Stage-0是依赖于Stage-1的文件读取操作,它不是MR作业,只是一个基于hadoop文件系统客户端的分布式文件读取程序。

重点分析Stage-1过程,一条记录被读取后调用hive自定义mapper函数,依次经过

TableScan

Operator->

FilterOperator->

SelectOperator->

LimitOperator->

FileOutputOperator,以上每一个Operator都是hive定义的一个处理过程。Limit执行原理部分执行流程:MapRunner会循环调用CombineHiveRecordReader的doNext方法读入行记录,直到doNext方法返回false,doNext方法中有一个重要的逻辑来控制记录读取是否结束Limit执行原理LimitOperator的判断逻辑:@OverridepublicvoidprocessOp(Objectrow,inttag)throwsHiveException{if(currCount<limit){forward(row,inputObjInspectors[tag]);currCount++;}else{setDone(true);}}currCount是一个记录处理的计数器,初始值为0,当该值大于等于limit后,将自己标识成处理完成状态,即设置done=trueLimit执行原理为什么limit1,map数为5的前提下,MapInputRecords是35而不是5?第一条记录进入LimitOperatordone为false;第二条记录进入LimitOperatordone为true;第三条记录进入SelectOperatordone设置为true;第四条记录进入FilterOperatordone设置为true;Limit执行原理第五条记录进入TableScanOperatordone设置为true;第六条记录进入MapOperatordone设置为true;第7条记录进入ExecMapper静态变量done设置为true;读取第八条记录时CombineHiveRecordReader发现ExecMapper的done已经为true,结束数据读取,从而MapRunner退出循环

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论