一、Hive概述 1.Hive簡介 Hive數據倉庫軟體有助於使用SQL讀取、編寫和管理駐留在分散式存儲中的大型數據集。提供了命令行工具和JDBC驅動程式以將用戶連接到Hive。 Hive可以將SQL語句自動轉化為Mapreduce程式,節省了手寫框架的困難。 2.Hive優缺點 優點:1)操作介面 ...
一、Hive概述
1.Hive簡介
Hive數據倉庫軟體有助於使用SQL讀取、編寫和管理駐留在分散式存儲中的大型數據集。提供了命令行工具和JDBC驅動程式以將用戶連接到Hive。
Hive可以將SQL語句自動轉化為Mapreduce程式,節省了手寫框架的困難。
2.Hive優缺點
優點:1)操作介面採用了SQL,避免了首先MR程式,簡化開發,降低學習成本;
2)Hive依賴於HDFS做存儲,是HDFS上的工具;
3)Hive雖然使用SQL,但是他能處理大規模的數據;
4)Hive支持自定義函數。
缺點:1)Hive執行延遲較高,大多適用於實時性不高的場景或用於處理歷史數據;
2)Hive的SQL表達能力有限,有些複雜場景還需要MR程式;
3)hive效率低,優化較難。
二、Hive架構
Hive提供了一下了介面:hive shell、JDBC/ODBC
Hive的工作流程:
1.客戶端可以通過多種介面來使用hvie,比如cli(命令行)、jdbc(java);
2.比如使用命令行select count(*) from user調用SQL
客戶端回去Meta元數據中調用MySQL的數據(hive預設資料庫是derby,我們可以修改指定為MySQL);
3.從Meta獲取資料庫數據後,命令行和數據一次傳入SQL Parser解析器、Physical編譯器、Query優化器、Execution執行器;
4.最後對生成的MR程式進行運算,返回結果。
三、Hive中的數據類型
Java數據類型 | Hive數據類型 | 類型長度 |
byte | tinyint | 1byte |
short | smallint | 2byte |
int | int | 4byte |
long | bigint | 8byte |
float | float | 單精度浮點數 |
double | double | 雙精度浮點數 |
string | string | 字元串 |
timestamp | 時間類型 | |
binary | 位元組數組 |