首页 > 科技 > Hive的工作流程

Hive的工作流程



最近小编的一位朋友小华学习了hiveSQL的一些常见场景及应用,也通过很多示例做了大量练习, 在心态上有一点小飘了,于是前两天去面试了一家大数据公司。

面试官一开始也是给面子,问了hiveSQL操作窗口函数的两道SQL题,小华都毫无疑问做出来了,心里正美着的时候,面试官来了hive的灵魂三问:hive是如何与hadoop结合的?hive的架构大致构成是?hive的运行流程是?于是傻眼的小华面试完之后来找到小编,希望小编能够说一下hive这方面的内容。

要说明白hive的整体工作流程,首先需要了解一下hive的架构设计。


Hive架构设计包括三个部分

1. Hive Clients,Hive客户端,它为不同类型的应用程序提供不同的驱动,使得Hive可以通过类似Java、Python等语言连接,同时也提供了JDBC和ODBC驱动。

2. Hive Services,Hive服务端,客户端必须通过服务端与Hive交互,主要包括:

· 用户接口组件(CLI,HiveServer,HWI),它们分别以命令行、与web的形式连接Hive。

· Driver组件,该组件包含编译器、优化器和执行引擎,它的作用是将hiveSQL语句进行解析、编译优化、生成执行计划,然后调用底层MR计算框架。

· Metastore组件,元数据服务组件。Hive数据分为两个部分,一部分真实数据保存在HDFS中,另一部分是真实数据的元数据,一般保存在MySQL中,元数据保存了真实数据的很多信息,是对真实数据的描述。

3. Hive Storage and Computing ,包括元数据存储数据库和Hadoop集群。Hive元数据存储在RDBMS中,Hive数据存储在HDFS中,查询由MR完成。


对Hive整体架构设计有一定了解之后,我们再来看看Hive实际的工作流程


接下来细化一下每个步骤

1、执行查询。Hive接口,如命令行或Web UI发送查询驱动程序(任何数据库驱动程序,如JDBC,ODBC等)来执行。


2、获取计划。在驱动程序帮助下查询编译器,分析查询检查语法和查询计划或查询的要求。


3、获取元数据,编译器发送元数据请求到Metastore(任何数据库)。


4、Metastore发送元数据,以编译器的响应。


5、编译器检查要求,并重新发送计划给驱动程序。到此为止,查询解析和编译完成。


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


7、在内部,执行作业的过程是一个MapReduce工作。执行引擎发送作业给JobTracker,在名称节点并把它分配作业到TaskTracker,这是在数据节点。在这里,查询执行MapReduce工作。与此同时,在执行时,执行引擎可以通过Metastore执行元数据操作。


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


9、执行引擎发送这些结果值给驱动程序。


10、驱动程序将结果发送给Hive接口。

简而言之,Hive接到命令之后,首先会去元数据库获取元数据,然后把元数据信息和作业计划发送Hadoop集群执行任务,再将最终的结果返回。

熟悉了Hive的整个工作流程,相信下回再遇到Hive相关的面试,你也能对答如流了。赶紧再熟悉一下吧。


作者 | Ai课工场

公主号 | Ai课工场

简介 | 这里是前沿技术知识聚集地,每周为你推送鲜活实用的提升干货!和小Ke同学一起分享你的所见所闻,领略人工智能、大数据、云计算等科技风采。公主号回复“资料”就可以领取自学资料大礼包!

本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.souzhinan.com/kj/289881.html