简述hive的架构

一、先上图,官网拷贝的。

简述hive的架构_第1张图片

二 、hive的组成

        2.1、客户端:

                1、后台命令行:hive与beeline 。一般做数仓进行脚本开发都是通过hive与beeline进行开发,当然也有spark-sql。

                2、hive-web ui:这个本人目前没用过,但是HUE组件是可以通过WEB UI 对hive进行操作。

                3、JDBC/ODBC: 这个对开发语言提供的接口了。

        2.2、 驱动程序:

                hive的核心主要是他的驱动引擎程序driver。包括解释器、编译器、优化器、执行器。

                解释器:对HQL进行解析,转换为抽象语法树(AST)。

                编译器:对抽象语法树进行编译,生成初步的逻辑计划。

                优化器:对初步的逻辑方案进行优化,形成最终的逻辑计划。

                执行器:执行逻辑计划。

        2.3、元数据:

               因为hive的数据文件是存储在HDFS上面的,所以他需要一个角色来管理库表字段数据文件位置等的信息,这个角色就是matestors。hive有自带的数据库,但是因为不方便,所以一般的平台都采用成熟的关系型数据库,比如mysql、oracle、postgerSql, mysql与postgerSql采用较多。当采用第三方关系型数据库做元数据库时,matestors的作用就是负责driver与元数据的协调。

       2.4、简单流程

                提交HQL到hive-client, client连接驱动程序driver,驱动程序中的解释器对HQL进行解析形成抽象语法树;编译器通过matestors连接元数据库对HQL的数据类型及语法分析,形成逻辑计划;优化器进行优化生成MR任务;执行器执行MR任务。

你可能感兴趣的:(HIVE)