HiveSQL的执行流程

hive是基于hadoop的一个数据仓库工具,他将结构化的数据存储在HDFS上,并映射到hive的一张表上,提供类SQL语句对数据进行操作。底层任务调度通过yarn进行资源分配,默认计算引擎为MapReduce,可移植为hive on tez或者hive on spark,下面是一条hive sql的执行流程:

(hive中的四大组件:解析器,编译器,优化器,执行器)

  1. 用户通过命令行窗口界面或者别的接口将HQL提交查询

  1. 查询的任务被提交到hive,解析器将其解析成抽象为语法树AST,检查语义语法是否正确

  1. HIve服务将抽象语法树转为逻辑执行计划(逻辑查询操作树),描述如何执行查询,包括哪些数据表将被扫描查询,哪些过滤器将被应用,使用哪些聚合函数等等

  1. hive的优化器将逻辑计划进行优化(执行代价估计、查询重写、选择最优执行计划等放法),选择最快资源耗费最少的方式运行

  1. 将逻辑计划编译为物理计划(hive一般会对物理计划再次优化),转化为实际的MapReduce任务,这些任务后续将被提交到hadoop集群并进行运行

  1. hive服务器将这物理执行计划提交到yarn,后续被当成一个任务被yarn调度执行

  1. 当所有的任务计算完成后,hive服务器将收集对应的任务结果返回给用户。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值