Hive体系架构

1、Hive体系架构

(1)Command-line shell:client在命令行shell上写sql,写完后提交给Hive引擎上。

(2)Thrift/JDBC:看做server/jdbc。Thrift是一种协议,把Hive起成一个服务server,通过JDBC的方式提交sql。额外可以看看WebUI(HUE/Zeppelin)通过图形化界面进行jdbc连接,sql在图形化界面上运行,所有进行可视化的展示。

(3)metastore:即元数据信息,存储在MySQL上

    database:name、location、owner...

    table:name、location、owner、column name/type...

(4)Driver:

    sql语句是普通的字符串,如何让字符串让Hive识别:

    Driver编译sql为语法数

    首先使用SQL Parser进行解析、编译为语法数

    基于这个语法数,使用Query Optimizer进行优化,取出最优的执行计划

    最优的执行计划生成物理执行计划

    在这个物理执行计划过程中,存在序列化及反序列化SerDes、用户自己定义的函数UDFs

    物理执行计划会生成一个Execution

    在Execution下,生成一个MapReduce

Driver的这一过程,即将客户端来的sql翻译成MapReduce

(5)最后将作业提交到HDFS,进行执行。

posted @ 2021-07-28 16:28  酱汁怪兽  阅读(236)  评论(0编辑  收藏  举报