1. hive是由Facebook實現並開源的
解決mapreduce編寫複雜和學習程度高的問題。
2. hive是hadoop的數據倉庫工具
hive是將存儲在HDFS上的結構化數據映射爲一張二維表格,編寫sql語句來統計分析。
結構化數據:csv、tsv
半結構化數據:圖片格式、音頻格式、視頻格式
非結構化數據:html、xml
用一張圖來解釋:
把存儲在HDFS上的結構化數據,通過Hive的sql語句創建數據庫表映射爲一張二維表格,然後可以寫sql語句進行查詢分析。
3. hive存儲的數據其實底層是存儲在HDFS上
hive本身不存儲數據,數據都是存儲在HDFS上。
4.hive將HDFS上存儲的結構化數據映射成一張二維庫表/二維結構
爲什麼hive提供的是sql的select語法?
因爲mysql的表就是一種二維結構,然後我們可以使用sql來操作
針對結構化的數據,其實都可以使用sql的查詢分析語句select來進行表達
5.hive提供HQL(hive query language)查詢功能
語法和SQL語法有區別,但是大致一樣。
6.hive的本質是將sql語句轉化爲mapreduce任務運行,使不熟悉mapreduce的用戶能夠通過HQL處理和計算HDFS上存儲的結構化數據
hive的目的是爲了減輕mapreduce的編碼複雜問題,但是不是用來提升mapreduce運行效率低下的問題。
hive—》mapreduce 減輕編碼壓力
spark—》mapreduce提升執行效率
用hive寫語句,用來轉換成mapreduce或者spark程序
spark和mapreduce是同種類型的東西,都是分佈式並行計算框架
用一張圖來解釋:
客戶端可以看作是我們常用的CRT,通過CRT客戶端編寫hive,將sql語句轉化成mapreduce程序,處理和計算HDFS上存儲的結構化數據,YARN集羣調度資源執行mapreduce任務計算,最後將結果呈現返回給CRT客戶端。