搜索
搜 索
本版
文章
帖子
用户
图文精华
hadoop-2.6.0+zookeeper-3.4.6+hbase-1.0.0+hive-1.1.0完全分布 ...
首页
Portal
专题
BBS
面试
办公|编程助手
更多
登录
注册
用户组:游客
主题
帖子
云币
我的帖子
我的收藏
我的好友
我的勋章
设置
退出
导读
淘贴
博客
群组
社区VIP
APP下载
今日排行
本周排行
本周热帖
本月排行
本月热帖
会员排行
About云-梭伦科技
»
专题
›
技术学习(版主发帖区)
›
大数据学习
›
Hive|数据仓库
›
总结型
›
Hive stage划分
0
0
0
分享
Hive stage划分
阿飞
2021-4-5 22:13:09
发表于
总结型
[显示全部楼层]
只看大图
阅读模式
关闭右栏
0
3070
问题导读
1.Parser是什么?
2.语法分析器的作用是什么?
3.逻辑计划生成器的作用是什么?
若想知道Hive stage是怎么划分的,需要对Hive的架构有些了解,下面通过一张图来展示
Hive架构图
本文关心Hive是怎么划分stage的,而这一部分主要跟Compiler有关,所以我们先看看Compiler
Parser:解析器,解析查询语句,解析成解析树。
Semantic Analyser:语法分析器,将解析树转换成内部查询表示。对列名、类型做检查,类型转换、隐式转换也在这一阶段进行,这一步之后依然是基于Block的树,而不是操作符树。
Logical Plan Generator:逻辑计划生成器,将内部查询表示转换成逻辑计划。也就是这一阶段,就将基于Block的树转换成操作符树。有“filter”、"join"等代数操作符,也有hive特定的用于后续将这一计划转换成map-reduce任务的自有操作符。例如reduceSink操作符。每个操作符都包含一个可序列化的对象。
这里我们可以发现一点,Hive在执行查询时,需要划分为多少个map-reduce任务是根据Hive特定的操作符为界限来划分的。
那么这一阶段还干了什么:
优化器optimizer也在这一阶段起作用以提升查询性能
例如将一系列的join转换成单一join、将group by现在map端进行聚合、当出现数据倾斜,单一reduce可能出现瓶颈的时候将group by分成两个stage。
Query Plan Generator:查询计划生成器。将逻辑计划转换成 map-reduce 任务。reduceSink操作符为map-reduce的界限,其描述符包含reduction key,这一reduction key也用于在map-reduce边界中的键值。查询计划中包含所需的采样/分区。
从官网的描述来看,我们大概能知道Hive查询转换成MapReduce任务与reduceSink有关,也就是说Hive stage的划分的决定要素为reduceSink。
我们知道Spark在划分stage时是以宽依赖为边界的。Hive在生成执行计划的时候也存在依赖关系区分,上一阶段的输出作为下一阶段的输入,这为stage划分提供了主要依据。
Hive stage划分
在生成map-reduce任务时,Hive深度优先方式遍历Operator tree(操作符树),遇到第一个reduceSink操作符时,该操作符之前的操作符便划分到一个map-reduce任务的Map任务中,然后该reduceSink到下一个
reduceSink操作符之间的部分划分为map-reduce任务的Reduce任务。
一个完整的MapReduce阶段代表一个stage。当然Hive中还有非MapReduce的stage,在MapReduce为计算框架时,基本以MapReduce的stage为主,我们这里也只谈论这一stage。
由于Hive使用MapReduce计算引擎时无法直接使用不同阶段的结果。因此,每个阶段完成之后的结果都要输出到临时目录,供下一阶段读取,因此便将整个操作符图分解成不同的stage。
最新经典文章,欢迎关注公众号
本篇文章对Hive执行细节说的比较清楚,有兴趣的小伙伴可以了解下:
https://blog.csdn.net/jiayuanv_127/article/details/50936964
————————————————
原文链接:
https://blog.csdn.net/weixin_43878293/article/details/102648655
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
没找到任何评论,期待你打破沉寂
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
发表新帖
阿飞
超级版主
关注
1893
主题
1998
帖子
123
粉丝
TA的主题
华为OD目标院校名单(2024.07新版)
2024-7-19
国/央企投递全流程经验分享
2024-7-15
2024年了,互联网大厂福利还香吗?
2024-5-23
华为3年涨薪6次,每次涨薪高达3万
2024-5-14
华为OD面试
2024-5-13
24小时热文
Docker+容器与容器云(第2版)
docker容器实战:原理、架构与应用
Docker基础与实战
kafka面试题精选
Nebula Flink Connector 在实时 ETL 的实践
关闭
推荐
/2
中文版ChatGPT
1.无需魔法 2.提高编程效率 3.提高文档能力
查看 »
新手帮助
新手帮助:注册遇到问题,领取资源,加入铁粉群,不会使用搜索,如何获取积分等
查看 »
意见
反馈