hive Cli常用操作(翻譯自Hive wiki)


這里羅列常用操作,更多參考 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Cli

hive命令行

執行一個查詢

$HIVE_HOME/bin/hive -e 'select a.col from tab1 a'

之后過程中,會在終端上顯示mapreduce的進度,執行完畢后,最后把查詢結果輸出到終端上,接着hive進程退出,不會進入交互模式。

 

使用靜音模式執行一個查詢

$HIVE_HOME/bin/hive -S -e 'select a.col from tab1 a'

加入-S,終端上的輸出不會有mapreduce的進度,執行完畢,只會把查詢結果輸出到終端上。這個靜音模式很實用,,通過第三方程序調用,第三方程序通過hive的標准輸出獲取結果集。

 

使用靜音模式執行一個查詢,把結果集導出

$HIVE_HOME/bin/hive -S -e 'select a.col from tab1 a' > tab1.csv

 

不進入交互模式,執行一個hive script

$HIVE_HOME/bin/hive -f /home/my/hive-script.sql

hive-script.sql是使用hive sql語法編寫的腳本文件,執行的過程和-e類似,區別是從文件加載sql.

但是sql文件,對於bash來說,不能使用變量,而使用-e的方式,可以在bash里使用變量(但是對於sql文件的形式,可以利用程序基於變量動態生成sql文件,再執行,稍微麻煩點)。

這里可以和靜音模式-S聯合使用,通過第三方程序調用,第三方程序通過hive的標准輸出獲取結果集。

 

hive交互式模式

$HIVE_HOME/bin/hive執行時,沒有-e或者-f選項,會進入交互式shell模式。

命令 描述
quit 
exit
退出交互式shell
reset 重置配置為默認值
set <key>=<value> 修改特定變量的值
注意: 如果變量名拼寫錯誤,不會報錯
set 輸出用戶覆蓋的hive配置變量
set -v 輸出所有Hadoop和Hive的配置變量
add FILE[S] <filepath> <filepath>* 
add JAR[S] <filepath> <filepath>* 
add ARCHIVE[S] <filepath> <filepath>*
添加 一個或多個 file, jar,  archives到分布式緩存
list FILE[S] 
list JAR[S] 
list ARCHIVE[S]
輸出已經添加到分布式緩存的資源。
list FILE[S] <filepath>* 
list JAR[S] <filepath>* 
list ARCHIVE[S] <filepath>*
檢查給定的資源是否添加到分布式緩存
delete FILE[S] <filepath>* 
delete JAR[S] <filepath>* 
delete ARCHIVE[S] <filepath>*
從分布式緩存刪除指定的資源
! <command> 從Hive shell執行一個shell命令
dfs <dfs command> 從Hive shell執行一個dfs命令
<query string> 執行一個Hive 查詢,然后輸出結果到標准輸出
source FILE <filepath> 在CLI里執行一個hive腳本文件

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

例子

 hive> set mapred.reduce.tasks=32;
  hive> set;
  hive> select a.* from tab1;
  hive> !ls;
  hive> dfs -ls;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM