一起學Hive 之八 使用Hive命令列

2021-08-22 11:42:09 字數 2167 閱讀 4749

hive提供的幾種使用者互動介面中,最常用的就是命令列介面。本文簡單介紹一下hive命令列介面(hive command line)及hive互動shell(hive interactive shell)的一些使用。

輸入$hive_home/bin/hive –h 或者 –help可以顯示幫助選項:

-d,–define定義乙個變數值,這個變數可以在hive互動shell中引用,後面會介紹用法,比如:-d a=b

–database

進入hive互動shell時候指定資料庫,預設進入default資料庫

-e 命令列執行一段sql語句

-f filename檔案中儲存hql語句,執行其中的語句

-h,–help

顯示幫助資訊

-h 連線遠端hive server,後續介紹

–hiveconf在命令列中設定hive的執行時配置引數,優先順序高於hive-site.xml,但低於hive互動shell中使用set命令設定。

–hivevar同—define

-i 進入hive互動shell時候先執行filename中的hql語句

-p 連線遠端hive server的埠號

-s,–silent

靜默模式,指定後不顯示執行進度資訊,最後只顯示結果

-v,–verbose

冗餘模式,額外列印出執行的hql語句

這裡特別介紹一下以下幾個選項:

執行$hive_home/bin/hive -d k1=v1 –database lxw1234

表示,定義了乙個變數k1,值為v1,執行了資料庫為lxw1234

進入hive互動shell之後,可以使用$來引用該變數,比如:

hive> select 『$』 from t_lxw1234 limit 1;

okv1

這裡將k1的值v1列印出來。

可以使用該選項設定hive的執行引數配置,相當於在hive互動shell中使用set命令進行設定,比如:

執行$hive_home/bin/hive –hiveconf mapred.reduce.tasks=20

進入互動shell之後,執行的所有查詢都會設定20個reduce task。

除非又用set mapred.reduce.tasks=n;進行另外設定。

用法同-d和—define

hive互動shell指執行$hive_home/bin/hive之後,進入的有hive>提示符的互動式命令列,在這裡可以執行查詢語句,設定引數等等,所有的命令必須以分號結束,具體有以下命令和選項:

退出互動shell

退出互動shell

重置所有的hive執行時配置引數,比如,之前使用set命令設定了reduce數量,使用reset之後,重置成hive-site.xml中的配置。

設定hive執行時配置引數,優先順序最高,相同key,後面的設定會覆蓋前面的設定。

列印出所有hive的配置引數和hadoop的配置引數。

包括 add file[s] * 、 add jar[s] * 、add archive[s] *

向distributecache中新增乙個或過個檔案、jar包、或者歸檔,新增之後,可以在map和reduce task中使用。

比如,自定義乙個udf函式,打成jar包,在建立函式之前,必須使用add jar命令,將該jar包新增,否則會報錯找不到類。

包括 list file[s] 、list jar[s]  、list archive[s]

列出當前distributecache中的檔案、jar包或者歸檔。

包括 delete file[s] * 、delete jar[s] *  、 delete archive[s] *

從distributecache中刪除檔案

在互動shell中執行linux作業系統命令並列印出結果,不常用

比如:hive> !pwd;

/home/lxw1234

在互動shell中執行hadoop fs 命令,不常用

比如,統計hdfs檔案系統中/tmp/目錄的總大小:

hive> dfs -du -s /tmp/;

54656194751 /tmp

最常用的,執行hql語句,以分號結尾;

在互動shell中執行乙個指令碼,不常用。

一起學Hive 之八 使用Hive命令列

hive提供的幾種使用者互動介面中,最常用的就是命令列介面。本文簡單介紹一下hive命令列介面 hive command line 及hive互動shell hive interactive shell 的一些使用。輸入 hive home bin hive h 或者 help可以顯示幫助選項 d,...

一起學Hive 之六 Hive的動態分割槽

前面文章介紹了hive中是支援分割槽的。關係型資料庫 如oracle 中,對分割槽表insert資料時候,資料庫自動會根據分割槽欄位的值,將資料插入到相應的分割槽中,hive中也提供了類似的機制,即動態分割槽 dynamic partition 只不過,使用hive的動態分割槽,需要進行相應的配置。...

一起學Hive 之六 Hive的動態分割槽

hive hive動態分割槽 前面文章介紹了hive中是支援分割槽的。關係型資料庫 如oracle 中,對分割槽表insert資料時候,資料庫自動會根據分割槽欄位的值,將資料插入到相應的分割槽中,hive中也提供了類似的機制,即動態分割槽 dynamic partition 只不過,使用hive的動...