您好,登錄后才能下訂單哦!
這篇文章主要介紹Apache Hive 3架構是怎么樣的,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
Apache Tez
Apache Tez是Hive on Tez服務的Hive執行引擎,該服務包括Cloudera Manager中的HiveServer(HS2)。Tez不支持MapReduce。在Cloudera集群中,如果舊腳本或應用程序指定要執行的MapReduce,則會發生異常。大多數用戶自定義函數(UDF)不需要更改即可在Tez上執行,而無需執行MapReduce。
使用有向無環圖(DAG)的表達式和數據傳輸原語,在Tez而不是MapReduce上執行Hive查詢可以提高查詢性能。在Cloudera數據平臺(CDP)中,Hive通常僅使用Tez引擎,并且在Hive on Tez啟動時會自動啟動和管理Tez AM。您提交給Hive的SQL查詢的執行方式如下:
Hive編譯查詢。
Tez執行查詢。
為整個集群中的應用程序分配資源。
Hive更新數據源中的數據并返回查詢結果。
Hive on Tez在臨時容器上運行任務,并使用標準的YARN shuffle服務。
數據存儲和訪問控制
支持Hive 3設計的主要架構更改之一使Hive對元數據內存資源和文件系統或對象存儲有了更多的控制。從Hive 2到Hive 3的以下體系結構的變更提供了更高的安全性:
嚴格控制的文件系統和計算機內存資源,替代了靈活的邊界:明確的邊界提高了可預測性。更好的文件系統控制可提高安全性。
優化共享文件和YARN容器中的工作負載
默認情況下,CDP私有云基礎版將Hive數據存儲在HDFS上,CDP公共云將Hive數據默認存儲在S3上。在公有云中,Hive僅將HDFS用于存儲臨時文件。Hive 3通過以下方式針對對象存儲(例如S3)進行了優化:
Hive使用ACID來確定要讀取的文件,而不是依賴于存儲系統。
在Hive 3中,文件移動比在Hive 2中減少。
Hive積極地緩存元數據和數據,以減少文件系統的操作。
Hive的主要授權模型是Ranger。Hive強制實施Ranger中指定的訪問控制。與其他安全方案相比,該模型提供了更強的安全性,并且在管理策略方面具有更大的靈活性。
此模型僅允許Hive訪問數據倉庫。如果未啟用Ranger安全服務或其他安全性,則默認情況下,CDP私有云基礎版的 Hive將基于用戶模擬使用基于存儲的授權(SBA)。
HDFS權限變更
在CDP私有云基礎版中,SBA嚴重依賴于HDFS訪問控制表(ACL)。ACL是HDFS中權限系統的擴展。默認情況下,CDP私有云基礎版打開HDFS中的ACL,為您提供以下優勢:
在授予多個用戶組和用戶特定權限時,增加了靈活性
方便地將權限應用于目錄樹,而不是單個文件
事務處理
您可以利用以下事務處理特性來部署新的Hive應用程序類型:
ACID事務處理的成熟版本:
ACID表是默認的表類型。
默認情況下啟用ACID不會導致性能或操作過載。
簡化的應用程序開發,具有強大事務保證的操作以及SQL命令的簡單語義
您不需要對ACID表分桶。
重寫的物化視圖
自動的查詢緩存
高級優化
Hive客戶端變更
CDP私有云基礎版支持瘦客戶端Beeline在命令行上工作。您可以從命令行運行Hive管理命令。Beeline使用JDBC連接到Hive on Tez來執行命令。解析、編譯和執行操作在Hive on Tez中進行。Beeline支持Hive CLI支持的許多命令行選項。但Beeline不支持hive -e set key=value的方式配置Hive Metastore。
通過使用hive 關鍵字、命令選項和命令調用Beeline,可以輸入受支持的Hive CLI命令。例如,hive -e set。使用Beeline代替不再受支持的胖客戶端Hive CLI具有許多優點,包括較低的開銷。Beeline不會使用整個Hive代碼庫。執行查詢所需的少量守護程序簡化了監視和調試。
Hive on Tez會強制執行白名單和黑名單設置,您可以使用SET命令對其進行更改。使用黑名單,您可以限制內存配置更改,以防止不穩定。您可以在具有不同白名單和黑名單的Tez實例上配置多個Hive,以建立不同級別的穩定性。
Apache Hive Metastore共享
Hive、Impala和其他組件可以共享遠程的Hive元存儲。在CDP公共云中,HMS使用預安裝的MySQL數據庫。在公有云上,您幾乎不需要配置或者很少的配置HMS。
整合Spark
Spark和Hive表使用Hive Warehouse Connector進行互操作。
您可以使用Hive Warehouse Connector從Spark訪問ACID表和外部表。您不需要Hive Warehouse Connector即可從Spark讀取Hive外部表并從Spark寫入Hive外部表。您不需要HWC即可讀取或寫入Hive外部表。Spark用戶只是直接從Hive中讀取或寫入。您可以讀取ORC或Parquet格式的Hive外部表。但您只能以ORC格式寫Hive的外部表。
查詢批處理和交互式工作負載的執行
您可以使用JDBC命令行工具(例如Beeline)或使用JDBC / ODBC驅動程序和BI工具(例如Tableau)連接到Hive。客戶端與同一個Hive on Tez版本的實例進行通信。您可以為每個實例配置設置文件以執行批處理或交互式處理。
以上是“Apache Hive 3架構是怎么樣的”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。