Hive执行流程

Hive执行流程

编译器将一个Hive QL转换操作符

操作符是Hive的最小的处理单元

每个操作符代表HDFS的一个操作或者一道MapReduce作业

Operator

•Operator都是hive定义的一个处理过程

•Operator都定义有:

•protected List > childOperators; 

•protected List > parentOperators; 

•protected boolean done; // 初始化值为false

所有的操作构成了 Operator图,hive正是基于这些图关系来处理诸如limit, group by, join等操作

Hive执行流程_第1张图片

Hive构建在Hadoop之上

1HQL中对查询语句的解释、优化、生成查询计划是由Hive完成的

2)所有的数据都是存储在Hadoop

3)查询计划被转化为MapReduce任务,在Hadoop中执行(有些查询没有MR任务,如:select * from table

4HadoopHive都是用UTF-8编码的

Hive编译器的组成:

Hive执行流程_第2张图片

Hive编译流程如下

Hive执行流程_第3张图片

Hive执行流程_第4张图片

Hive编译过程

基本流程为:

HiveQL转化为

1)抽象语法树

2)再转为查询块

3)然后转为逻辑查询计划

4)再转为物理查询计划

5)最终选择最佳决策的过程。

Hive编译器

Hive执行流程_第5张图片

你可能感兴趣的:(大数据~Hive)