Hive體系架構

一、Hive體系架構sql

(1)Command-line shell:client在命令行shell上寫sql,寫完後提交給Hive引擎上。shell

(2)Thrift/JDBC:看作server/jdbc。Thrift是一種協議,把Hive起成一個服務server,經過JDBC的方式提交sql。額外能夠看看WebUI(HUE/Zeppelin)經過圖形化界面進行jdbc鏈接,sql在圖形化界面上運行,全部進行可視化的展現。架構

(3)metastore:即元數據信息,存儲在MySQL上ide

    database:name、location、owner...函數

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

(4)Driver:命令行

    sql語句是普通的字符串,如何讓字符串讓Hive識別:翻譯

    Driver編譯sql爲語法數server

    首先使用SQL Parser進行解析、編譯爲語法數blog

    基於這個語法數,使用Query Optimizer進行優化,取出最優的執行計劃

    最優的執行計劃生成物理執行計劃

    在這個物理執行計劃過程當中,存在序列化及反序列化SerDes、用戶本身定義的函數UDFs

    物理執行計劃會生成一個Execution

    在Execution下,生成一個MapReduce

Driver的這一過程,即將客戶端來的sql翻譯成MapReduce

(5)最後將做業提交到HDFS,進行執行。

相關文章
相關標籤/搜索