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服务器将收集对应的任务结果返回给用户。

你可能感兴趣的:(hive,数据仓库,大数据,mapreduce)