Hive【Hive架構及工作原理】

在這里插## 標題入圖片描述

> 						大家好,我是程序員小羊!

?博客主頁: https://blog.csdn.net/m0_63815035?type=blog

💗《博客內容》:.NET、Java.測試開發、Python、Android、Go、Node、Android前端小程序等相關領域知識
📢博客專欄: https://blog.csdn.net/m0_63815035/category_11954877.html
📢歡迎點贊 👍 收藏 ?留言 📝
📢本文為學習筆記資料,如有侵權,請聯系我刪除,疏漏之處還請指正🙉
📢大廈之成,非一木之材也;大海之闊,非一流之歸也?

在這里插入圖片描述
在這里插入圖片描述

目錄

  • 前言
  • 一、Hive的基本概念
    • 1.1Hive的交互方式
    • 1.2Hive與數據庫的比較
    • 1.3Hive的優缺點
    • 1.4Hive的應用場景
    • 1.5思考題
  • 二、Hive架構
    • 2.1Hive架構概述
      • 2.1.1客戶端提交SQL
      • 2.1.2Beeline的安全性
      • 2.1.3使用JDBC和ODBC連接Hive
    • 2.2元數據存儲
    • 2.3客戶端安全性
    • 2.4HDFS與Hive集成
  • 三、Driver的工作流程
  • 四、Hive的工作原理

前言

Hive 的前生屬于 Facebook,用于解決海量結構化數據的統計分析,現在屬于 Apache 軟件基金會。Hive 是一個構建在Hadoop之上的數據分析工具(Hive 沒有存儲數據的能力,只有使用數據的能力),底層由 HDFS 來提供數據存儲,可以將結構化的數據文件映射為一張數據庫表,并且提供類似 SQL的査詢功能,本質就是將 HQL 轉化成 MapReduce 程序。說白了 Hive 可以理解為一個將 SOL轉換為 MapReduce 程序的工具,甚至更近一步說, Hive 就是一個 MapReduce 客戶端.
總結:交互方式采用 SOL,元數據存儲在 Derby或 MySOL,數據存儲在 HDFS,分析數據底層實現是 MapReduce,執行程序運行在 YARN 上。

一、Hive的基本概念

1.Hive的Logo:形狀像蜂巢,由Hadoop的頭部和蜜蜂的尾部組成,代表Hive搭建在Hadoop的HDFS之上。
2.Hive的本質:是一個計算框架,提供類似SQL的查詢功能,將SQL轉換為MapReduce程序。
3.Hive的歷史:由Facebook開發并開源貢獻給Apache,用于處理海量數據。
在這里插入圖片描述

1.1Hive的交互方式

1.Hive的交互方式:通過SQL進行交互,類似于SQL Boy。
2.原數據存儲:存儲在Hadoop的HDFS中,文件形式存在。
3.底層計算框架:默認使用MapReduce,但可替換為Tez或Spark。

1.2Hive與數據庫的比較

1.數據存儲:Hive數據存儲在HDFS中,不支持修改和添加;數據庫支持CRUD操作。
2.執行延遲:Hive執行延遲高,適用于離線處理;數據庫執行延遲低,適用于實時處理。
3.可擴展性:Hive具有較高的可擴展性,支持底層計算引擎的替換;數據庫可擴展性較低。
4.數據規模:Hive適用于海量數據處理;數據庫適用于小規模數據。

在這里插入圖片描述

1.3Hive的優缺點

1.優點:學習成本低,減少開發人員學習Java等語言的時間。
2.缺點:SQL表達能力有限,復雜查詢優化困難;底層基于MapReduce,執行延遲高,不適合交互式查詢。

1.4Hive的應用場景

1.日志分析:通過Hive進行海量日志數據的離線分析。
2.離線數倉:構建離線數據倉庫,處理海量結構化數據。

1.5思考題

在這里插入圖片描述

二、Hive架構

在這里插入圖片描述

2.1Hive架構概述

1.Hive架構重要組成部分為Driver。
2.架構圖簡單,無需詳細拆解。
在這里插入圖片描述

在這里插入圖片描述

2.1.1客戶端提交SQL

1.大數據程序員通過客戶端提交SQL。
2.Hive提供Shell界面,可直接在界面中編寫和執行SQL。
3.Beeline是一個第三方工具,可用于提交SQL到Hive。

2.1.2Beeline的安全性

1.Beeline起到轉發作用,保護底層的Hive。
2.通過Beeline連接,不容易被攻擊者直接獲取Hive核心信息。
3.Beeline使用了一層額外的加密和轉發,增加了安全性。

2.1.3使用JDBC和ODBC連接Hive

1.使用JAVA代碼和C語言代碼通過JDBC和ODBC連接Hive。
2.可通過IDEA等工具添加Hive相關依賴,使用JDBC代碼連接。
3.Hive提供了Web UI,可通過HTTP協議訪問。

2.2元數據存儲

1.元數據存儲表名、列名、字段映射等信息。
2.學習環境中,Hive使用自帶的Derby數據庫存儲元數據。
3.生產環境中,推薦使用外部數據庫如MySQL、PostgreSQL等存儲元數據。

2.3客戶端安全性

1.客戶端連接元數據時需要輸入用戶名、密碼、URL等信息。
2.不安全的客戶端可能導致敏感信息泄露,被攻擊者利用。
3.Hive提供了安全的連接方式,如Hive over 2,增加了連接的安全性。

2.4HDFS與Hive集成

1.HDFS存儲Hive的數據文件。
2.Hive通過元數據與HDFS集成,找到數據文件的映射關系。
3.解析、編譯、優化和執行等步驟將SQL轉換為MapReduce任務在YARN集群上執行。

三、Driver的工作流程

1.Driver包含解析器、編譯器、優化器和執行器四大核心組件。
2.解析器校驗表名和列名是否存在。
3.編譯器將SQL編譯成執行語法樹。
4.優化器進行基于規則(RBU)和基于代價(CPU)的優化。
5.執行器將優化后的SQL轉換為MapReduce任務在YARN集群上執行。
在這里插入圖片描述

四、Hive的工作原理

當創建表的時候,需要指定 HDFS 文件路徑,表和其文件路徑會保存到Metastore,從而建立表和數據的映射關系。當數據加載入表時,根據映射獲取到對應的 HDFS 路徑,將數據導入。
用戶輸入SQL后,Hive 會將其轉換成 MapReduce 或者 Spark 任務,提交到 YARN 上執行,執行成功將返回結果。

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

今天這篇文章就到這里了,大廈之成,非一木之材也;大海之闊,非一流之歸也。感謝大家觀看本文

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/90558.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/90558.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/90558.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據管理能力成熟度評估模型(DCMM)詳解

數據管理能力成熟度評估模型(DCMM)詳解 1. DCMM概述 數據管理能力成熟度評估模型(Data Management Capability Maturity Assessment Model, DCMM)是我國首個數據管理領域的國家標準(GB/T 36073-2018),由國家工業信息安全發展研究中心牽頭制定。該模型為我國企業數據…

學習C++、QT---34(使用QT庫實現串口調試助手01:解決串口調試助手的UI)

🌟 嗨,我是熱愛嵌入式的濤濤同學!每日一言別害怕改變,走出舒適圈才能遇見更好的自己。串口調試助手項目好的現在我們來學習串口調試助手的項目,我們依舊是項目引領學習好的我們最后就是要做成一個類似我們市面上的串口…

Dockerfile 文件及指令詳解

什么是Dockerfile 文件Dockerfile 文件是用于構建 docker 鏡像的腳本文件,由一系列的指令構成。通過 docker build 命令構建鏡像時,Dockerfile 文件中的指令會由上到下執行,每條 指令都將會構建出一個鏡像層,這就是鏡像的分層。因…

主流Java Redis客戶端對決:Jedis、Lettuce與Redisson性能特性深度評測

💝💝💝歡迎蒞臨我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內容和知識,也可以暢所欲言、分享您的想法和見解。 持續學習,不斷…

刷題日記0725

今日計劃5道。2/5晚上被一些事影響了心神不寧,再加上感覺睡前做完時間有點緊,逃避的念頭出現了。代碼意思不進腦子了。做一道是一道。21. 合并兩個有序鏈表默認構造??:用于創建??值為0的孤立節點??(不連接其他節點&#xff…

從數據脫敏到SHAP解釋:用Streamlit+XGBoost構建可復現的川崎病診斷系統

基于機器學習的川崎病輔助診斷工具,結合了數據預處理、模型訓練、特征解釋和交互式可視化。以下是深度解讀:1. 技術架構框架:使用 Streamlit 構建 Web 應用,適合快速開發交互式數據科學應用。核心算法:XGBoost&#xf…

【C++詳解】模板進階 非類型模板參數,函數模板特化,類模板全特化、偏特化,模板分離編譯

文章目錄一、非類型模板參數應用場景二、模板的特化函數模板特化類模板特化全特化偏特化三、模板分離編譯解決方法四、模板總結一、非類型模板參數 先前介紹的函數模板和類模板都是針對類型的類模板參數,非類型模板參數有哪些使用場景呢?我們先來看下面這…

10BASE-T1S核心機制——PLCA參數詳解

導語: PLCA是10BASE-T1S的核心機制,了解PLCA才能更好地使用10BASE-T1。 本文將通過介紹具體配置,以及實戰例子,帶你掌握PLCA。 以下測試內容使用KUNHONG-U10BT1S-EVB設備測試, 設備符合IEEE 802.3cg標準&#xff0…

uniapp vue apk那邊輸入法遮擋頁面內容

解決辦法:pages.json配置如下{"globalStyle": {"app-plus": {"softinputMode": "adjustResize"}} }效果: 鍵盤彈出時自動調整窗口大小,所有內容上推(兼容性最佳)文件內容如下…

2507C++,系統服務0與1

原文 窗口上的系統調用通過,每個由系統調用(x64)或sysenter(x86)CPU指令調用的NTDLL.dll,如NTDLL的NtCreateFile的以下輸出所示: 這里 0:000> u ntdll!NtCreateFile: 00007ffcc07fcb50 4c8bd1 mov r10,rcx 00007ffcc07fcb53 b855000000 mov eax,55h…

人工智能冗余:大語言模型為何有時表現不佳(以及我們能做些什么)

像 GPT - 4 這樣的大語言模型(LLMs)徹底改變了我們與技術交互的方式。它們可以撰寫文章、生成代碼、回答問題,甚至幫助我們構思創意。但任何花時間使用過這些模型的人都知道,它們的輸出有時會讓人感覺……不太對勁。表述冗長、格式…

Cursor替代品亞馬遜出品Kiro下載

Cursor替代品亞馬遜出品Kiro下載 支持Claude Sonnet4.0與3.7 點擊下載 備用鏈接:https://pan.xunlei.com/s/VOW-nBmVgR3ewIIAm7jDsf99A1?pwd6bqu#

MySQL 事務管理

一、前言 CURD 不加控制,會有什么問題? CURD 滿足什么屬性,能解決上述問題? 買票的過程得是原子的。買票應該不能受互相的影響。買完票應該要永久有效。買前和買后都要是確定的狀態。 什么是事務? 事務就是一組 DML 語…

yarn在macOS上的安裝與鏡像源配置:全方位指南

在前端開發領域,高效的包管理工具是提升開發效率的關鍵。yarn 作為一款由 Facebook 推出的包管理器,憑借其快速、可靠、安全的特性,逐漸成為眾多開發者的首選。對于 macOS 用戶而言,正確安裝 yarn 并合理配置鏡像源,能…

Qt 插件架構開發與應用

Qt的插件架構是其模塊化和可擴展性的核心機制之一,它允許開發者通過動態加載插件(Plugins)擴展應用功能,而無需重新編譯主程序。這種架構廣泛應用于IDE(如Qt Creator)、媒體播放器(解碼器擴展&a…

打破傳統局限:FinOps云成本優化助力企業云成本管理升級

在云計算日益普及的當下,企業紛紛將業務遷移到云端,以期獲得更高效、靈活的IT資源管理方式。然而,云成本管理問題也隨之而來,高額的云支出、資源利用不充分、成本控制難等,成為企業云管理之路上的絆腳石。此時,奇墨科技FinOps云成本優化正以其獨特的優勢,助力企業打破傳統局限,…

HDFS寫性能優化技巧詳解:從理論到實踐

HDFS寫性能優化概述在大數據處理的生態系統中,Hadoop分布式文件系統(HDFS)作為核心存儲層,其寫性能直接影響著整個數據處理管道的效率。隨著數據規模的指數級增長,企業對HDFS寫入吞吐量和延遲的要求日益嚴苛&#xff0…

基于AutoJawSegment項目的CBCT圖像分割實踐指南

基于AutoJawSegment項目的CBCT圖像分割實踐指南 前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家,覺得好請收藏。點擊跳轉到網站。 1. 項目背景與概述 1.1 CBCT在口腔醫學中的應用 錐形束計算機斷層掃描(Cone Beam Computed Tomograph…

docker部署的ragflow服務遷移 數據卷遷移

[docker ragflow數據遷移]目錄背景一、我的配置文件? 數據存儲路徑一覽(基于你的配置文件)關于這些 volumes 的說明📁 如何查看這些卷在本地的具體位置?可能用到的docker 命令如下。📦 總結建議🛠? 如果想…

Chrome插件學習筆記(三)

Chrome插件學習筆記(三) 參考文章: https://blog.csdn.net/guoqiankunmiss/article/details/135847091https://blog.csdn.net/guoqiankunmiss/article/details/135974364 1、項目搭建 在前兩篇文章中使用的原生js去操作dom,很費勁…