hive读取hdfs存放文件_Hive基本概念
1.1 Hive簡介
1.1.1 什么是Hive
Hive是基于Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張數據庫表,并提供類SQL查詢功能。
1.1.2 為什么使用Hive
- 直接使用hadoop所面臨的問題
人員學習成本太高
項目周期要求太短
MapReduce實現復雜查詢邏輯開發難度太大
- 為什么要使用Hive
操作接口采用類SQL語法,提供快速開發的能力。
避免了去寫MapReduce,減少開發人員的學習成本。
擴展功能很方便。
1.1.3 Hive的特點
- 可擴展
Hive可以自由的擴展集群的規模,一般情況下不需要重啟服務。
- 延展性
Hive支持用戶自定義函數,用戶可以根據自己的需求來實現自己的函數。
- 容錯
良好的容錯性,節點出現問題SQL仍可完成執行。
1.2 Hive架構
1.2.1 架構圖
Jobtracker是hadoop1.x中的組件,它的功能相當于: Resourcemanager+AppMaster
TaskTracker 相當于: Nodemanager + yarnchild
1.2.2 基本組成
- 用戶接口:包括 CLI、JDBC/ODBC、WebGUI。
- 元數據存儲:通常是存儲在關系數據庫如 mysql , derby中。
- 解釋器、編譯器、優化器、執行器。
- 用戶接口主要由三個:CLI、JDBC/ODBC和WebGUI。其中,CLI為shell命令行;JDBC/ODBC是Hive的JAVA實現,與傳統數據庫JDBC類似;WebGUI是通過瀏覽器訪問Hive。
- 元數據存儲:Hive 將元數據存儲在數據庫中。Hive 中的元數據包括表的名字,表的列和分區及其屬性,表的屬性(是否為外部表等),表的數據所在目錄等。
- 解釋器、編譯器、優化器完成 HQL 查詢語句從詞法分析、語法分析、編譯、優化以及查詢計劃的生成。生成的查詢計劃存儲在 HDFS 中,并在隨后有 MapReduce 調用執行。
1.2.3 各組件的基本功能
1.3 Hive與Hadoop的關系
Hive利用HDFS存儲數據,利用MapReduce查詢數據
1.4 Hive與傳統數據庫對比
總結:hive具有sql數據庫的外表,但應用場景完全不同,hive只適合用來做批量數據統計分析
1.5 Hive的數據存儲
1、Hive中所有的數據都存儲在 HDFS 中,沒有專門的數據存儲格式(可支持Text,SequenceFile,ParquetFile,RCFILE等)
2、只需要在創建表的時候告訴 Hive 數據中的列分隔符和行分隔符,Hive 就可以解析數據。
3、Hive 中包含以下數據模型:DB、Table,External Table,Partition,Bucket。
2 db:在hdfs中表現為${hive.metastore.warehouse.dir}目錄下一個文件夾
2 table:在hdfs中表現所屬db目錄下一個文件夾
2 external table:與table類似,不過其數據存放位置可以在任意指定路徑
2 partition:在hdfs中表現為table目錄下的子目錄
2 bucket:在hdfs中表現為同一個表目錄下根據hash散列之后的多個文件
1.6 HIVE的安裝部署
1.6.1 安裝
單機版:
元數據庫mysql版:
1.6.2 使用方式
Hive交互shell
bin/hive
Hive thrift服務
啟動方式,(假如是在hadoop01上):
啟動為前臺:bin/hiveserver2
啟動為后臺:nohup bin/hiveserver2 1>/var/log/hiveserver.log 2>/var/log/hiveserver.err &
啟動成功后,可以在別的節點上用beeline去連接
v 方式(1)
hive/bin/beeline 回車,進入beeline的命令界面
輸入命令連接hiveserver2
beeline> !connect jdbc:hive2//mini1:10000
(hadoop01是hiveserver2所啟動的那臺主機名,端口默認是10000)
v 方式(2)
或者啟動就連接:
bin/beeline -u jdbc:hive2://mini1:10000 -n hadoop
接下來就可以做正常sql查詢了
Hive命令
[hadoop@hdp-node-02 ~]$ hive -e ‘sql’
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的hive读取hdfs存放文件_Hive基本概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深交所互动平台_怡达股份股价涨跌幅偏离大
- 下一篇: editor 插入图片之后将光标放到右侧