更新時間:2023年08月09日18時21分 來源:傳智教育 瀏覽次數(shù):
Hive其2大主要組件就是SQL解析器以及元數(shù)據(jù)存儲,SQL解析器(Driver驅(qū)動程序)用于完成SQL解析、執(zhí)行優(yōu)化、代碼提交等功能,元數(shù)據(jù)存儲幫助記錄各類元數(shù)據(jù)。下面來詳細介紹。
元數(shù)據(jù)存儲
原數(shù)據(jù)存儲通常是存儲在關(guān)系數(shù)據(jù)庫如mysql/derby中。Hive中的元數(shù)據(jù)包括表的名字,表的列和分區(qū)及其屬性,表的屬性(是否為外部表等),表的數(shù)據(jù)所在目錄等。-- Hive提供了Metastore服務(wù)進程提供元數(shù)據(jù)管理功能。
Driver驅(qū)動程序,包括語法解析器、計劃編譯器、優(yōu)化器、執(zhí)行器
完成 HQL 查詢語句從詞法分析、語法分析、編譯、優(yōu)化以及查詢計劃的生成。生成的查詢計劃存儲在 HDFS 中,并在隨后有執(zhí)行引擎調(diào)用執(zhí)行。這部分內(nèi)容不是具體的服務(wù)進程,而是封裝在Hive所依賴的Jar文件即Java代碼中。
用戶接口
包括 CLI、JDBC/ODBC、WebGUI。其中,CLI(command line interface)為shell命令行;Hive中的Thrift服務(wù)器允許外部客戶端通過網(wǎng)絡(luò)與Hive進行交互,類似于JDBC或ODBC協(xié)議。WebGUI是通過瀏覽器訪問Hive。Hive提供了 Hive Shell、 ThriftServer等服務(wù)進程向用戶提供操作接口。