首页 理论教育 Hive 工作原理简介

Hive 工作原理简介

时间:2026-01-23 理论教育 季夏 版权反馈
【摘要】:图7.2 描述了Hive 的工作原理。图7.2Hive 的工作原理图图7.2 中各步骤说明如下:Execute Query用户通过Hive 接口发送查询任务给驱动程序。Send MetaData元数据库发送元数据给编译器。编译器得到元数据信息后,对任务进行编译。Execute Job在Hive 内部,执行作业的过程实际上是一个MapReduce 工作。MetaData Ops执行引擎可以通过Meta Store 执行元数据操作,这里的操作与第步骤同时执行。

图7.2 描述了Hive 的工作原理。

图示

图7.2 Hive 的工作原理图

图7.2 中各步骤说明如下:

(1)Execute Query

用户通过Hive 接口(如命令行或Web 接口)发送查询任务给驱动程序。

(2)Get Plan

编译器获得该用户的任务Plan,对查询进行分析。

(3)Get MetaData

编译器根据用户任务发送元数据请求到元数据库,去获取需要的Hive 的元数据信息。

(4)Send MetaData

元数据库发送元数据给编译器。编译器得到元数据信息后,对任务进行编译。先将HiveQL 转换为抽象语法树,进而转换成查询块,然后将查询块转化为逻辑查询计划,并重写逻辑查询计划,将其转换为物理计划,最后进行调优,选择最佳的策略。

(5)Send Plan(https://www.xing528.com)

编译器重新发送计划给驱动程序。到此为止,查询分析和编译完成。

(6)Execute Plan

驱动程序发送执行计划到执行引擎。

(7)Execute Job

在Hive 内部,执行作业的过程实际上是一个MapReduce 工作。执行引擎发送作业给Job Tracker,NameNode 将作业分配给数据节点的Task Tracker,执行Map 和Reduce 工作。任务会直接读取HDFS 中的文件进行相应的操作。

(8)MetaData Ops

执行引擎可以通过Meta Store 执行元数据操作,这里的操作与第(7)步骤同时执行。

(9)Fetch Results

执行引擎接收来自数据节点的结果。

(10)Send Results

执行引擎发送结果给驱动程序。

(11)Send Results

驱动程序将结果返回给用户。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈