柚子快報邀請碼778899分享:Hive學習
柚子快報邀請碼778899分享:Hive學習
一.Hive概述
Apache Hive是一款分布式SQL計算的工具,主要功能是將SQL語句翻譯成MapReduce程序運行
傳統(tǒng)MapReduce開發(fā):寫MR代碼->得到結(jié)果使用Hive開發(fā):寫SQL->得到結(jié)果底層都是MR在運行,但是使用層面上更加簡單
使用Hadoop MapReduce直接處理數(shù)據(jù)所面臨的問題
人員學習成本太高 需要掌握Java,Python等編程語言MapReduce實現(xiàn)復(fù)雜查詢邏輯開發(fā)難度太大
使用Hive處理數(shù)據(jù)的好處
操作接口采用類SQL語法,提供快速開發(fā)的能力(簡單,容易上手)底層執(zhí)行MapReduce,可以完成分布式海量數(shù)據(jù)的SQL處理
二.Hive基礎(chǔ)架構(gòu)
Hive架構(gòu)圖
1. 用戶接口 CLI(command-line interface)、JDBC/ODBC(jdbc 訪問 hive)、WEBUI(瀏覽器訪問 hive)
其中, CLI 即 Shell 終端命令行,它是最常用的方式。
JDBC / ODBC 是 Hive 的 Java 實現(xiàn),與使用傳統(tǒng)數(shù)據(jù)庫 JDBC 的方式類似, WebUI 指的是通過測覽器訪問 Hive 。
2. 跨語言服務(wù)( Thrift Server ) Thrift 是 Facebook 開發(fā)的一個軟件框架,可以用來進行可擴展且跨語言的服務(wù)。
Hive 集成了該服務(wù),能讓不同的編程語言調(diào)用 Hive 的接口。
3. 底層的驅(qū)動引擎(Driver) 主要包含:
解析器( SQL Parser ):將 SQL 字符串轉(zhuǎn)換成抽象語法樹 AST,這一步一般都用第 三方工具庫完成,比如 antlr;對 AST 進行語法分析,比如表是否存在、字段是否存在、SQL 語義是否有誤。編譯器( Compiler ):將 AST 編譯生成邏輯執(zhí)行計劃。優(yōu)化器( Optimizer ):對邏輯執(zhí)行計劃進行優(yōu)化。執(zhí)行器( Executor ):把邏輯執(zhí)行計劃轉(zhuǎn)換成可以運行的物理計劃。對于 Hive 來 說,就是 MR/Spark。
它們用于完成 HQL 查詢語句從詞法分析、語法分析、編譯、優(yōu)化以及查詢計劃的生成,生成的查詢計劃存儲在 HDFS 中,并在隨后由 MapReduce 調(diào)用執(zhí)行。
Hive 的底層計算引擎可選為:MapReduce,Spark,Tez
4. 元數(shù)據(jù)存儲系統(tǒng)( Metastore )
?Metastore:即元數(shù)據(jù)存儲服務(wù),作用是:可無端鏈接metastore服務(wù),metastore再去鏈接MySQL等數(shù)據(jù)庫來存取元數(shù)據(jù)。 Hive 中的元數(shù)據(jù)通常包含表名、列、分區(qū)及其相關(guān)屬性,表數(shù)據(jù)所在目錄的位置信息, Metastore 默認存在自帶的 Derby 數(shù)據(jù)庫中。
Hive 通過給用戶提供的一系列交互接口,接收到用戶的指令(SQL),使用自己的 Driver, 結(jié)合元數(shù)據(jù)(MetaStore),將這些指令翻譯成 MapReduce,提交到 Hadoop 中執(zhí)行,最后,將 執(zhí)行返回的結(jié)果輸出到用戶交互接口。
三.Hive部署
Hive元數(shù)據(jù)存儲的三種模式
?內(nèi)嵌模式,使用內(nèi)嵌的Derby數(shù)據(jù)庫存儲元數(shù)據(jù),是Hive最簡單的部署方式。嵌入模式下的Hive不支持多會話連接,不適合生產(chǎn)環(huán)境,只適合測試環(huán)境。本地模式,使用本地獨立數(shù)據(jù)庫存儲元數(shù)據(jù),這里的獨立數(shù)據(jù)庫通常使用MySQL數(shù)據(jù)庫。本地模式部署的Hive支持元數(shù)據(jù)共享,并且支持多會話連接。遠程模式(推薦),遠程模式與本地模式一樣,同樣是使用獨立數(shù)據(jù)庫存儲元數(shù)據(jù)。不同的是,遠程模式使用的是遠端的獨立數(shù)據(jù)庫,而本地模式使用的是本地獨立數(shù)據(jù)庫。遠程模式主要應(yīng)用于Hive客戶端較多的情況。
四.Hive初體驗
五.Hive客戶端
柚子快報邀請碼778899分享:Hive學習
好文閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。