Hive學習筆記
筆記內容主要來自Hive編程指南
基礎操作
Hive內部都有什麼
- $HIVE_HOME/lib 目錄下有 jar文件
- $HIVE_HOME/bin 目錄下包含可執行文件,包括hive命令行界面(CLI)
- Hive 還有一些組件。Thrift服務提供了可遠程訪問其他進程的功能,也提供使用 JDBC和ODBC 訪問 Hive的功能。這些都是基於Thrift服務實現的。
- 所有的Hive客戶端都需要一個metastoreservice(元數據服務) ,Hve使用這個服務來存儲表模式信息和其他元數據信息。默認是 使用Derby SQL。生產環境需要切換到 MySQL或者 其他關係型數據庫。
- Hive提供了一個簡單的Hive網頁界面(HWI) , 提供了遠程訪問Hive的服務。
- conf目錄下存放了Hive的配置文件。
Hive命令
bin/hive –help
hive服務
hive命名空間
hive中”一次使用命令”
hive -e "SELECT * FROM mytable LIMIT 3";
hive -S -e "SELECT * FROM mytable LIMIT 3";#靜默模式
從文件中執行hive查詢
hive -f /mypath/test.hql;
hiverc文件
hive -i ...#i選項允許用戶指定一個文件,當cli啓動時,提提示符出現前會先執行這個文件。Hive會自動在Home目錄下尋找名爲.hiverc的文件。(如果有這個文件的話)
hive cli 更多介紹
- 自動補全功能
- 查看操作命令歷史(存放位置:$HOME/.hivehistory)
- 執行shell命令 ! 命令前加 感嘆號
- hive內使用Hadoop的dfs命令
- Hive 腳本中註釋用 - -
- 顯示字段名稱 hive.cli.print.header=true
數據類型和文件格式
基本數據類型
集合數據類型
文本文件數據編碼
默認的記錄和字段分隔符
指定分隔符:
CREATE TABLE employees(
name STRING,
salary FLOAT,
subordinates ARRAY<STRING>,
deductions MAP<STRING,FLOAT>,
address STRUCT<street:STRING,city:STRING,state:STRING,zip:INT>
)
ROW FORMAT DELIMITED
FILEDS TERMINATED BY '\001'
COLLECTION ITEMS TERMINATED BY '\002',
MAP KEYS TERMINATED BY '\003',
LINES TERMINATED BY '\N'
STORED AS TEXTFILE;
ROW FORMAT DELIMITED 這組關鍵詞必須要寫在其他子句(除了 STORED AS…子句)之前。
自定義分割 簡單示例(逗號分割字段):
CREATE TABLE some_data(
first FLOAT,
second FLOAT,
third FLOAT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';