Hive 命令行
| 命令行參數(shù) | 說明 |
|---|---|
| -d,–define <key=value> | 定義一個變量值,這個變量可以在Hive交互Shell中引用,后面會介紹用法,比如:-d A=B |
| –database <databasename> | 進入Hive交互Shell時候指定數(shù)據(jù)庫,默認進入default數(shù)據(jù)庫 |
| -e <quoted-query-string> | 命令行執(zhí)行一段SQL語句 |
| -f <filename> | filename文件中保存HQL語句,執(zhí)行其中的語句 |
| -H,–help | 顯示幫助信息 |
| -h <hostname> | 連接遠程Hive Server,后續(xù)介紹 |
| –hiveconf <property=value> | 在命令行中設(shè)置Hive的運行時配置參數(shù),優(yōu)先級高于hive-site.xml,但低于Hive交互Shell中使用Set命令設(shè)置。 |
| –hivevar <key=value> | 同—define |
| -i <filename> | 進入Hive交互Shell時候先執(zhí)行filename中的HQL語句 |
| -p <port> | 連接遠程Hive Server的端口號 |
| -S,–silent | 靜默模式,指定后不顯示執(zhí)行進度信息,最后只顯示結(jié)果 |
| -v,–verbose | 冗余模式,額外打印出執(zhí)行的HQL語句 |
輸入$HIVE_HOME/bin/hive –H 或者 –help可以顯示幫助選項:
| 命令行參數(shù) | 說明 |
|---|---|
| -d,–define <key=value> | 定義一個變量值,這個變量可以在Hive交互Shell中引用,后面會介紹用法,比如:-d A=B |
| –database <databasename> | 進入Hive交互Shell時候指定數(shù)據(jù)庫,默認進入default數(shù)據(jù)庫 |
| -e <quoted-query-string> | 命令行執(zhí)行一段SQL語句 |
| -f <filename> | filename文件中保存HQL語句,執(zhí)行其中的語句 |
| -H,–help | 顯示幫助信息 |
| -h <hostname> | 連接遠程Hive Server,后續(xù)介紹 |
| –hiveconf <property=value> | 在命令行中設(shè)置Hive的運行時配置參數(shù),優(yōu)先級高于hive-site.xml,但低于Hive交互Shell中使用Set命令設(shè)置。 |
| –hivevar <key=value> | 同—define |
| -i <filename> | 進入Hive交互Shell時候先執(zhí)行filename中的HQL語句 |
| -p <port> | 連接遠程Hive Server的端口號 |
| -S,–silent | 靜默模式,指定后不顯示執(zhí)行進度信息,最后只顯示結(jié)果 |
| -v,–verbose | 冗余模式,額外打印出執(zhí)行的HQL語句 |
-d,–define <key=value>
定義一個變量值,這個變量可以在Hive交互Shell中引用,后面會介紹用法,比如:-d A=B
–database <databasename>
進入Hive交互Shell時候指定數(shù)據(jù)庫,默認進入default數(shù)據(jù)庫
-e <quoted-query-string>
命令行執(zhí)行一段SQL語句
-f <filename>
filename文件中保存HQL語句,執(zhí)行其中的語句
-H,–help
顯示幫助信息
-h <hostname>
連接遠程Hive Server,后續(xù)介紹
–hiveconf <property=value>
在命令行中設(shè)置Hive的運行時配置參數(shù),優(yōu)先級高于hive-site.xml,但低于Hive交互Shell中使用Set命令設(shè)置。
–hivevar <key=value>
同—define
-i <filename>
進入Hive交互Shell時候先執(zhí)行filename中的HQL語句
-p <port>
連接遠程Hive Server的端口號
-S,–silent
靜默模式,指定后不顯示執(zhí)行進度信息,最后只顯示結(jié)果
-v,–verbose
冗余模式,額外打印出執(zhí)行的HQL語句
這里特別介紹一下以下幾個選項:
-d,–define <key=value>
執(zhí)行$HIVE_HOME/bin/hive -d k1=v1 –database lxw1234
表示,定義了一個變量k1,值為v1,執(zhí)行了數(shù)據(jù)庫為lxw1234
進入Hive交互Shell之后,可以使用${k1}來引用該變量,比如:
hive> select ‘${k1}’ from t_lxw1234 limit 1;
OK
v1
這里將k1的值v1打印出來。
–hiveconf <property=value>
可以使用該選項設(shè)定Hive的運行參數(shù)配置,相當于在Hive交互Shell中使用set命令進行設(shè)置,比如:
執(zhí)行$HIVE_HOME/bin/hive –hiveconf mapred.reduce.tasks=20
進入交互Shell之后,運行的所有查詢都會設(shè)置20個reduce task。
除非又用set mapred.reduce.tasks=N;進行另外設(shè)定。
–hivevar <key=value>
用法同-d和—define
7.2 Hive交互Shell
Hive交互Shell指執(zhí)行$HIVE_HOME/bin/hive之后,進入的有hive>提示符的交互式命令行,在這里可以執(zhí)行查詢語句,設(shè)置參數(shù)等等,所有的命令必須以分號結(jié)束,具體有以下命令和選項:
quit
退出交互Shell
exit
退出交互Shell
reset
重置所有的Hive運行時配置參數(shù),比如,之前使用set命令設(shè)置了reduce數(shù)量,使用reset之后,重置成hive-site.xml中的配置。
set <key>=<value>
設(shè)置Hive運行時配置參數(shù),優(yōu)先級最高,相同key,后面的設(shè)置會覆蓋前面的設(shè)置。
set –v
打印出所有Hive的配置參數(shù)和Hadoop的配置參數(shù)。
add命令
包括 add FILE[S] <filepath> <filepath>* 、 add JAR[S] <filepath> <filepath>* 、add ARCHIVE[S] <filepath> <filepath>*
向DistributeCache中添加一個或過個文件、jar包、或者歸檔,添加之后,可以在Map和Reduce task中使用。
比如,自定義一個udf函數(shù),打成jar包,在創(chuàng)建函數(shù)之前,必須使用add jar命令,將該jar包添加,否則會報錯找不到類。
list 命令
包括 list FILE[S] 、list JAR[S] 、list ARCHIVE[S]
列出當前DistributeCache中的文件、jar包或者歸檔。
delete 命令
包括 delete FILE[S] <filepath>* 、delete JAR[S] <filepath>* 、 delete ARCHIVE[S] <filepath>*
從DistributeCache中刪除文件
! <command>
在交互Shell中執(zhí)行Linux操作系統(tǒng)命令并打印出結(jié)果,不常用
比如:
hive> !pwd;
/home/lxw1234
dfs <dfs command>
在交互Shell中執(zhí)行hadoop fs 命令,不常用
比如,統(tǒng)計hdfs文件系統(tǒng)中/tmp/目錄的總大?。?br>
hive> dfs -du -s /tmp/;
54656194751 /tmp
<query string>
最常用的,執(zhí)行HQL語句,以分號結(jié)尾;
source FILE <filepath>
在交互Shell中執(zhí)行一個腳本,不常用。