Hive指令行
文法結構:
hive [-hiveconf x=y]* [<-i filename>]* [<-f filename>|<-e query-string>] [-S]
- -i從檔案初始化HQL。
- -e從指令行執行指定的HQL
- -f 執行HQL腳本
- -v 輸出執行的HQL語句到控制台
- -p <port> connect to Hive Server on port number
- -hiveconf x=y Use this to set hive/hadoop configuration variables.
具體執行個體:
1、運作一個查詢
2、運作一個檔案
2、運作參數檔案
Hive參數配置方式
Hive參數大全:
https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties
開發Hive應用時,不可避免地需要設定Hive的參數。設定Hive的參數可以調優HQL代碼的執行效率,或幫助定位問題。然而實踐中經常遇到的一個問題是,為什麼設定的參數沒有起作用?這通常是錯誤的設定方式導緻的。
對于一般參數,有以下三種設定方式:
- 配置檔案
- 指令行參數
- 參數聲明
配置檔案: Hive的配置檔案包括
- 使用者自定義配置檔案:$HIVE_CONF_DIR/hive-site.xml
- 預設配置檔案:$HIVE_CONF_DIR/hive-default.xml
使用者自定義配置會覆寫預設配置
另外,Hive也會讀入Hadoop的配置,因為Hive是作為Hadoop的用戶端啟動的,Hive的配置會覆寫Hadoop的配置。
配置檔案的設定對本機啟動的所有Hive程序都有效。
指令行參數: 啟動Hive(用戶端或Server方式)時,可以在指令行添加-hiveconf param=value來設定參數,例如:
bin/hive -hiveconf hive.root.logger=INFO,console
這一設定對本次啟動的Session(對于Server方式啟動,則是所有請求的Sessions)有效。
參數聲明: 可以在HQL中使用SET關鍵字設定參數,例如:
set mapred.reduce.tasks=100;