更新時間:2020-06-04 14:17:17 來源:動力節點 瀏覽2387次
Hive是建立在Hadoop上的數據倉庫基礎構架。對于有一定基礎的大數據學習者來講,Hive是必須掌握的核心技術。本文主要帶大家來認識一下Hive,了解什么是Hive?為什么要用Hive?如果大家對這些問題好奇,就一起看看接下來的內容吧~
1.Hive的定義
Hive一個可以將結構化的數據文件映射為一張數據庫表并提供類SQL查詢功能的數據倉庫工具,而且它是基于Hadoop的。因此,從本質上來看,Hive是將SQL轉換為MapReduce程序的工具。因為,比直接用MapReduce開發效率更高,Hive的主要作用就是用來做離線數據分析。
2.Hive架構
用戶接口:包括CLI、JDBC/ODBC、WebGUI。其中,CLI(command line interface)為shell命令行;JDBC/ODBC是Hive的JAVA實現,與傳統數據庫JDBC類似;WebGUI是通過瀏覽器訪問Hive。
元數據存儲:通常是存儲在關系數據庫如mysql/derby中。Hive將元數據存儲在數據庫中。Hive中的元數據包括表的名字,表的列和分區及其屬性,表的屬性(是否為外部表等),表的數據所在目錄等。
解釋器、編譯器、優化器、執行器:完成HQL查詢語句從詞法分析、語法分析、編譯、優化以及查詢計劃的生成。生成的查詢計劃存儲在HDFS中,并在隨后有MapReduce調用執行。
3.Hive數據模型
Hive中所有的數據都存儲在HDFS中,沒有專門的數據存儲格式。在創建表時指定數據中的分隔符,Hive就可以映射成功,解析數據。Hive中包含以下數據模型:
db:在hdfs中表現為hive.metastore.warehouse.dir目錄下一個文件夾;
table:在hdfs中表現所屬db目錄下一個文件夾;
external table:數據存放位置可以在HDFS任意指定路徑;
partition:在hdfs中表現為table目錄下的子目錄;
bucket:在hdfs中表現為同一個表目錄下根據hash散列之后的多個文件。
1.Hive與傳統數據庫對比
Hive用于海量數據的離線數據分析。Hive具有sql數據庫的外表,但應用場景完全不同,Hive只適合用來做批量數據統計分析。
2.Hive的優勢
Hive利用HDFS存儲數據,利用MapReduce查詢分析數據。因為直接使用Hadoop MapReduce處理數據,會面臨人員學習成本太高的問題,而且MapReduce實現復雜查詢邏輯開發難度太大。而使用Hive,操作接口采用類SQL語法,提供快速開發的能力的同時還避免了去寫MapReduce,從而減少開發人員的學習成本,功能擴展更加方便。
以上就是動力節點java培訓機構的小編針對“數據庫開發教程之Hive的使用”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習