溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Apache Hive 3架構(gòu)是怎么樣的

發(fā)布時(shí)間:2021-12-10 11:14:40 來源:億速云 閱讀:209 作者:小新 欄目:大數(shù)據(jù)

這篇文章主要介紹Apache Hive 3架構(gòu)是怎么樣的,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

Apache Tez

Apache Tez是Hive on Tez服務(wù)的Hive執(zhí)行引擎,該服務(wù)包括Cloudera Manager中的HiveServer(HS2)。Tez不支持MapReduce。在Cloudera集群中,如果舊腳本或應(yīng)用程序指定要執(zhí)行的MapReduce,則會(huì)發(fā)生異常。大多數(shù)用戶自定義函數(shù)(UDF)不需要更改即可在Tez上執(zhí)行,而無需執(zhí)行MapReduce。

使用有向無環(huán)圖(DAG)的表達(dá)式和數(shù)據(jù)傳輸原語,在Tez而不是MapReduce上執(zhí)行Hive查詢可以提高查詢性能。在Cloudera數(shù)據(jù)平臺(tái)(CDP)中,Hive通常僅使用Tez引擎,并且在Hive on Tez啟動(dòng)時(shí)會(huì)自動(dòng)啟動(dòng)和管理Tez AM。您提交給Hive的SQL查詢的執(zhí)行方式如下:

  • Hive編譯查詢。

  • Tez執(zhí)行查詢。

  • 為整個(gè)集群中的應(yīng)用程序分配資源。

  • Hive更新數(shù)據(jù)源中的數(shù)據(jù)并返回查詢結(jié)果。

Hive on Tez在臨時(shí)容器上運(yùn)行任務(wù),并使用標(biāo)準(zhǔn)的YARN shuffle服務(wù)。


數(shù)據(jù)存儲(chǔ)和訪問控制

支持Hive 3設(shè)計(jì)的主要架構(gòu)更改之一使Hive對(duì)元數(shù)據(jù)內(nèi)存資源和文件系統(tǒng)或?qū)ο蟠鎯?chǔ)有了更多的控制。從Hive 2到Hive 3的以下體系結(jié)構(gòu)的變更提供了更高的安全性:

  • 嚴(yán)格控制的文件系統(tǒng)和計(jì)算機(jī)內(nèi)存資源,替代了靈活的邊界:明確的邊界提高了可預(yù)測(cè)性。更好的文件系統(tǒng)控制可提高安全性。

  • 優(yōu)化共享文件和YARN容器中的工作負(fù)載

默認(rèn)情況下,CDP私有云基礎(chǔ)版將Hive數(shù)據(jù)存儲(chǔ)在HDFS上,CDP公共云將Hive數(shù)據(jù)默認(rèn)存儲(chǔ)在S3上。在公有云中,Hive僅將HDFS用于存儲(chǔ)臨時(shí)文件。Hive 3通過以下方式針對(duì)對(duì)象存儲(chǔ)(例如S3)進(jìn)行了優(yōu)化:

  • Hive使用ACID來確定要讀取的文件,而不是依賴于存儲(chǔ)系統(tǒng)。

  • 在Hive 3中,文件移動(dòng)比在Hive 2中減少。

  • Hive積極地緩存元數(shù)據(jù)和數(shù)據(jù),以減少文件系統(tǒng)的操作。

Hive的主要授權(quán)模型是Ranger。Hive強(qiáng)制實(shí)施Ranger中指定的訪問控制。與其他安全方案相比,該模型提供了更強(qiáng)的安全性,并且在管理策略方面具有更大的靈活性。

此模型僅允許Hive訪問數(shù)據(jù)倉庫。如果未啟用Ranger安全服務(wù)或其他安全性,則默認(rèn)情況下,CDP私有云基礎(chǔ)版的 Hive將基于用戶模擬使用基于存儲(chǔ)的授權(quán)(SBA)。

HDFS權(quán)限變更

在CDP私有云基礎(chǔ)版中,SBA嚴(yán)重依賴于HDFS訪問控制表(ACL)。ACL是HDFS中權(quán)限系統(tǒng)的擴(kuò)展。默認(rèn)情況下,CDP私有云基礎(chǔ)版打開HDFS中的ACL,為您提供以下優(yōu)勢(shì):

  • 在授予多個(gè)用戶組和用戶特定權(quán)限時(shí),增加了靈活性

  • 方便地將權(quán)限應(yīng)用于目錄樹,而不是單個(gè)文件


事務(wù)處理

您可以利用以下事務(wù)處理特性來部署新的Hive應(yīng)用程序類型:

  • ACID事務(wù)處理的成熟版本:

ACID表是默認(rèn)的表類型。

默認(rèn)情況下啟用ACID不會(huì)導(dǎo)致性能或操作過載。

  • 簡(jiǎn)化的應(yīng)用程序開發(fā),具有強(qiáng)大事務(wù)保證的操作以及SQL命令的簡(jiǎn)單語義

您不需要對(duì)ACID表分桶。

  • 重寫的物化視圖

  • 自動(dòng)的查詢緩存

  • 高級(jí)優(yōu)化


Hive客戶端變更

CDP私有云基礎(chǔ)版支持瘦客戶端Beeline在命令行上工作。您可以從命令行運(yùn)行Hive管理命令。Beeline使用JDBC連接到Hive on Tez來執(zhí)行命令。解析、編譯和執(zhí)行操作在Hive on Tez中進(jìn)行。Beeline支持Hive CLI支持的許多命令行選項(xiàng)。但Beeline不支持hive -e set key=value的方式配置Hive Metastore。

通過使用hive 關(guān)鍵字、命令選項(xiàng)和命令調(diào)用Beeline,可以輸入受支持的Hive CLI命令。例如,hive -e set。使用Beeline代替不再受支持的胖客戶端Hive CLI具有許多優(yōu)點(diǎn),包括較低的開銷。Beeline不會(huì)使用整個(gè)Hive代碼庫。執(zhí)行查詢所需的少量守護(hù)程序簡(jiǎn)化了監(jiān)視和調(diào)試。

Hive on Tez會(huì)強(qiáng)制執(zhí)行白名單和黑名單設(shè)置,您可以使用SET命令對(duì)其進(jìn)行更改。使用黑名單,您可以限制內(nèi)存配置更改,以防止不穩(wěn)定。您可以在具有不同白名單和黑名單的Tez實(shí)例上配置多個(gè)Hive,以建立不同級(jí)別的穩(wěn)定性。


Apache Hive Metastore共享

Hive、Impala和其他組件可以共享遠(yuǎn)程的Hive元存儲(chǔ)。在CDP公共云中,HMS使用預(yù)安裝的MySQL數(shù)據(jù)庫。在公有云上,您幾乎不需要配置或者很少的配置HMS。

     

整合Spark

Spark和Hive表使用Hive Warehouse Connector進(jìn)行互操作。

您可以使用Hive Warehouse Connector從Spark訪問ACID表和外部表。您不需要Hive Warehouse Connector即可從Spark讀取Hive外部表并從Spark寫入Hive外部表。您不需要HWC即可讀取或?qū)懭際ive外部表。Spark用戶只是直接從Hive中讀取或?qū)懭?。您可以讀取ORC或Parquet格式的Hive外部表。但您只能以O(shè)RC格式寫Hive的外部表。


查詢批處理和交互式工作負(fù)載的執(zhí)行

您可以使用JDBC命令行工具(例如Beeline)或使用JDBC / ODBC驅(qū)動(dòng)程序和BI工具(例如Tableau)連接到Hive。客戶端與同一個(gè)Hive on Tez版本的實(shí)例進(jìn)行通信。您可以為每個(gè)實(shí)例配置設(shè)置文件以執(zhí)行批處理或交互式處理。

以上是“Apache Hive 3架構(gòu)是怎么樣的”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI