hive的内部组件及执行流程

1、组件:
元存储(Metastore )-存储“系统目录以及关于表、列、分区等的元数据”的组件。

驱动(Driver )- 控制 HiveQL 生命周期的组件,当 HiveQL 查询穿过 Hive时。该驱动管理着会话句柄以及任何会话的统计。

查询编译器(Query Compiler) - 是一个组件,将HiveQL编译成有向无环图(directed acyclic graph, DAG)形式的map/reduce任务。

执行引擎 (Execution Engine) - 是一个组件,依相依性顺序(dependency order)执行由编译器产生的任务。

Hive 服务器 (HiveServer) - 一个提供“健壮的接口(thrift interface )、JDBC/ODBC 服务器以及提供一种整合 Hive 和其它应用的”组件。

客户端组件 -类似命令行接口CLI(Command Line Interface), web UI 以及JDBC/ODBC驱动。包含了正反序列化(SerDe)以及对象观察器(ObjectInspector)接口的可扩展接口,类似于前述用户定义函数 UDF (User Defined Function)以及用户定义聚合函数UDAF(User Defined AggregateFunction)接口,允许用户定义自己的列函数。

hive的内部组件及执行流程_第1张图片
Hive编译过程
基本流程为:

将HiveQL转化为

1)抽象语法树

2)再转为查询块

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

4)再转为物理查询计划

5)最终选择最佳决策的过程。
hive的内部组件及执行流程_第2张图片

你可能感兴趣的:(hive)