hive SQL语句执行过程

hive SQL语句执行过程

背景了解:
hive数仓数据存储于Hadoop大数据框架的HDFS文件系统中,以文件的方式存储,hive是建立在Hadoop之上的数仓工具,hive将文件数据映射成结构性数据-表。

了解hive SQL语句:
hive SQL语句是在hive上执行的类SQL语句,可以通过hive将hive SQL语句转换成MapReduce程序操作数据,而不必开发专门的应用程序。

示意图:
hive SQL语句执行过程图-原创-盗版必究
从示意图可出执行过程基本可分为两部分:hive SQL语句转换成执行计划部分、按执行计划实际操作数据部分。
hive SQL语句转换成执行计划部分:
hive SQL语句转换成执行计划
解析:
1.客户从hive客户端输入一串hive SQL代码。
2.解析器解读hive SQL语句,辨别语法语序,抛出错误,生成语法树。
3.编译器将语法树转换成服务器可以看懂的操作符,生成执行计划。
4.优化器向hive数仓元数据库发出请求获取相对应表的元数据信息,根据元数据信息对执行计划进行优化。

按执行计划实际操作数据部分:
执行计划操作数据
解析:
1.hive SQL代码生成的执行计划由一个个执行步骤按先后执行顺序所组成,执行步骤对应的是mapreduce job。
2.按执行顺序执行Mr job,Mr job又分为map阶段和reduce阶段,map阶段获取文件数据,将文件数据划分到多个map程序做数据统计生成对应键值对(key-value),由文件大小、文件数量、块分割大小决定划分的map数,map阶段完成后会生成文件,将结果数据存储在里面,map数有多少生成的文件就有多少。
3.在进入reduce阶段之前还有个Shuffle阶段,负责将map阶段输出文件内的键值对key值进行排序,将同一个key值放入同一个reduce程序中。
4.reduce阶段是获取map阶段输出的文件,将数据做进一步的合并统计处理,而reduce数由集群设置单个reduce可处理的最大数据来设置的,map端输出的数据量若是大于单个reduce最大数据量,则新增reduce。
5.到此reduce阶段结束会生成数据文件,文件数和reduce数是一样的,接下来就是讲输出文件返回给用户或者作为下一个Mr job执行的输入文件。

该文章是作者对该知识点自己的理解,若理解有误,欢迎指正!

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值