Hadoop Hive 資料倉儲原理與架構

2022-09-06 04:18:08 字數 2738 閱讀 9936

hive是什麼

hive 構建在 hadoop 之上,提供以下功能:

hive 提供標準的 sql 功能,hive 的 sql 也可以通過使用者定義的函式(udf),使用者定義的集合(udaf)和使用者定義的表函式(udtf)擴充套件為使用者**。

換句話來說,hive 是基於 hadoop 的乙個資料倉儲工具,是用來管理資料倉儲的。可以將結構化的資料檔案對映為一張資料庫表,並提供類 sql 的查詢功能。

從如下 hadoop 生態圈圖中可以看出 hive 所扮演的角色。

hive如何將結構化的資料檔案對映成一張表

結構化的資料檔案如何理解?

滿足以上2個條件即可稱為結構化的資料檔案,例如:student.txt 檔案的內容儲存的是學生基本資訊,包含:學生id,學生姓名,學生年齡。具體內容如下:

1   zhangsan    18

2 lishi 20

3 wangwu 19

4 xiaomin 18

該 student.txt 檔案中,固定的字段有3個,分別是:學生id,學生姓名,學生年齡。字段之間固定的分隔符為'\t'(tab鍵),那麼可以認為 student.txt 檔案就是結構化的資料檔案。

假定在 hdfs 裡建立一張表 t_student, 建表語句如下:

create

table t_student(id int, name string, age int);

此時通過 hive 元資料資訊可以將資料檔案 student.txt 與表 t_student 形成對映關係。

hive 元資料資訊一般會儲存在 mysql 或 derby 資料庫中,其中會記錄:

元資料存放的路徑在 hive-site.xml 檔案裡配置,找到對應儲存的 mysql 庫可以查詢到表的元資料資訊。

hive-site.xml 配置元資料所在的 mysql 資訊的位置如下:

mysql 中元資料資訊如下(以其中一張表 tbls 截圖說明):

從以上截圖中可以看出 tbls 表儲存的元資料報含:

tbl_id,create_time,db_id,owner,tbl_name,tbl_type等關鍵資訊。

hive可以使用類sql指令對結構化資料檔案進行分組查詢

# 通過age分組,查詢t_student表以age為維度對應的學生總人數之和

select age, count(*) from t_student group

by age;

這個 sql 語句與常見的 mysql 語句是十分類似的,hive 裡的 sql 語句也可稱為 hql,這裡的 hql 語句通過 hive 將查詢語句轉換為底層的 mapreduce 進行運算。

hive 的本質是將 client 端提交的 sql 指令轉換為 mapreduce 任務進行運算,在運算過程中會產生一些結果資料,這些結果資料在底層是使用 hdfs 來進行儲存的。

換句話來說,hive可以認為是將 sql 轉換為 mapreduce 任務的乙個工具,甚至可以說 hive 就是 mapreduce 的客戶端。

hive的優點

先來看下hive的架構圖,如下圖所示

為了更好地理解 hive 的架構圖,下圖以乙個實際的例子作為講解。

總結:

今天分享的內容包含:hive是什麼,hive所具有的功能和優點,在 hadoop 大資料生態圈中所飾演的角色,hive架構等內容。

python+unittest框架api自動化、

python+unittest框架api自動化、

python+pytest框架api自動化、

python+pandas+pyecharts大資料分析、

python+selenium框架web的ui自動化、

python程式設計學習資源乾貨、

資源和** 免費送啦~

包含:資料分析、大資料、機器學習、測試開發、api介面自動化、測試運維、ui自動化、效能測試、**檢測、程式設計技術等。

新增關注,讓我們一起共同成長!

資料倉儲 資料倉儲部署

1 首先用下面的語句查詢是否有要建立的表空間 hospdw tab 和 hospdw idx 如果沒有,則把d database zyhip改為對應的路徑,有的話直接建立使用者 select tablespace name,file name,round bytes 1024 1024 0 size...

資料倉儲,什麼是資料倉儲?

資料倉儲,英文名稱為data warehouse,可簡寫為dw或dwh。資料倉儲是為企業所有級別的決策制定過程提供支援的所有型別資料的戰略集合。它是單個資料儲存,出於分析性報告和決策支援的目的而建立。為企業提供需要業務智慧型來指導業務流程改進和監視時間 成本 質量和控制。資料倉儲是決策支援系統 ds...

資料倉儲和資料倉儲分層

資料倉儲 data warehouse 可簡寫為dw或dwh。資料倉儲,是為企業所有級別的決策制定過程,提供所有型別資料支援的戰略集合。它是單個資料儲存,出於分析性報告和決策支援目的而建立。為需要業務智慧型的企業,提供指導業務流程改進 監視時間 成本 質量以及控制。1 問題簡單化,將乙個複雜的問題分...