更新時間:2020-06-04 14:17:17 來源:動力節(jié)點 瀏覽2726次
Hive是建立在Hadoop上的數(shù)據(jù)倉庫基礎(chǔ)構(gòu)架。對于有一定基礎(chǔ)的大數(shù)據(jù)學(xué)習(xí)者來講,Hive是必須掌握的核心技術(shù)。本文主要帶大家來認識一下Hive,了解什么是Hive?為什么要用Hive?如果大家對這些問題好奇,就一起看看接下來的內(nèi)容吧~

1.Hive的定義
Hive一個可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表并提供類SQL查詢功能的數(shù)據(jù)倉庫工具,而且它是基于Hadoop的。因此,從本質(zhì)上來看,Hive是將SQL轉(zhuǎn)換為MapReduce程序的工具。因為,比直接用MapReduce開發(fā)效率更高,Hive的主要作用就是用來做離線數(shù)據(jù)分析。
2.Hive架構(gòu)

用戶接口:包括CLI、JDBC/ODBC、WebGUI。其中,CLI(command line interface)為shell命令行;JDBC/ODBC是Hive的JAVA實現(xiàn),與傳統(tǒng)數(shù)據(jù)庫JDBC類似;WebGUI是通過瀏覽器訪問Hive。
元數(shù)據(jù)存儲:通常是存儲在關(guān)系數(shù)據(jù)庫如mysql/derby中。Hive將元數(shù)據(jù)存儲在數(shù)據(jù)庫中。Hive中的元數(shù)據(jù)包括表的名字,表的列和分區(qū)及其屬性,表的屬性(是否為外部表等),表的數(shù)據(jù)所在目錄等。
解釋器、編譯器、優(yōu)化器、執(zhí)行器:完成HQL查詢語句從詞法分析、語法分析、編譯、優(yōu)化以及查詢計劃的生成。生成的查詢計劃存儲在HDFS中,并在隨后有MapReduce調(diào)用執(zhí)行。
3.Hive數(shù)據(jù)模型
Hive中所有的數(shù)據(jù)都存儲在HDFS中,沒有專門的數(shù)據(jù)存儲格式。在創(chuàng)建表時指定數(shù)據(jù)中的分隔符,Hive就可以映射成功,解析數(shù)據(jù)。Hive中包含以下數(shù)據(jù)模型:
db:在hdfs中表現(xiàn)為hive.metastore.warehouse.dir目錄下一個文件夾;
table:在hdfs中表現(xiàn)所屬db目錄下一個文件夾;
external table:數(shù)據(jù)存放位置可以在HDFS任意指定路徑;
partition:在hdfs中表現(xiàn)為table目錄下的子目錄;
bucket:在hdfs中表現(xiàn)為同一個表目錄下根據(jù)hash散列之后的多個文件。
1.Hive與傳統(tǒng)數(shù)據(jù)庫對比

Hive用于海量數(shù)據(jù)的離線數(shù)據(jù)分析。Hive具有sql數(shù)據(jù)庫的外表,但應(yīng)用場景完全不同,Hive只適合用來做批量數(shù)據(jù)統(tǒng)計分析。
2.Hive的優(yōu)勢
Hive利用HDFS存儲數(shù)據(jù),利用MapReduce查詢分析數(shù)據(jù)。因為直接使用Hadoop MapReduce處理數(shù)據(jù),會面臨人員學(xué)習(xí)成本太高的問題,而且MapReduce實現(xiàn)復(fù)雜查詢邏輯開發(fā)難度太大。而使用Hive,操作接口采用類SQL語法,提供快速開發(fā)的能力的同時還避免了去寫MapReduce,從而減少開發(fā)人員的學(xué)習(xí)成本,功能擴展更加方便。
以上就是動力節(jié)點java培訓(xùn)機構(gòu)的小編針對“數(shù)據(jù)庫開發(fā)教程之Hive的使用”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)閱讀
Java實驗班
0基礎(chǔ) 0學(xué)費 15天面授
Java就業(yè)班
有基礎(chǔ) 直達就業(yè)
Java夜校直播班
業(yè)余時間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)