hive CLI 命令選項

2021-10-04 06:23:14 字數 2469 閱讀 6038

目錄

命名空間

變數替換

--hiveconf 選項

hive -e

hive -s

模糊查詢

hive -f

hive -i

操作歷史

執行 shell 命令

hadoop dfs 命令

顯示欄位名稱

$ hive --help

乙個簡單說明的選項列表,service list 後面的內容,是提供的服務

顯示了 cli 所提供的選項列表

定義乙個變數 foo

set 顯示或修改變數值,直接 set 顯示全部變數,只擷取了部分,還可以用於給變數賦新的值

hivevar 命名空間定義變數,檢視,修改

hive> set hivevar:foo;

hive> set hivevar:foo=bar2;

hive> set hivevar:foo;

字首 hivevar: 是可選的, --hivevar --define 標記是相同的

cli 查詢語句中的變數應用會先被替換掉後才會提交給查詢處理器

建立乙個表 toss1

hive> create table toss1(i int, $ string);

檢視hive> describe toss1;

建立表 toss2,檢視

用於配置 hive 行為的所有屬性

hive.cli.print.current.db 屬性開啟,預設是 false,可以在提示符前列印當前資料庫名,debry 預設資料庫名為 default

$ hive --hiveconf hive.cli.print.currrent.db=true

可執行乙個或多個查詢語句(分號分隔),執行結束後 hive cli 立即退出,例如

$ hive -e "select * from mytable limit 3";

okname1 10

name2 20

time taken:4.324 second

將查詢結果儲存到乙個檔案中,增加 -s 開啟靜默模式,這樣可以在輸出中去掉 「ok」 「time taken」 等無關的輸出

$ hive -s -e "select * from mytable limit 3" > /tmp

$ cat tmp

name1 10

name2 20

輸出是輸出到本地,不是 hdfs

記不清某個屬性名時,可以使用,而不用 set 翻滾查詢,例如記不清 warehouse 的路徑

指定檔名執行乙個或多個查詢語句,一般這些查詢檔案字尾為 .q .hql

$ hive -f /temp/123.hql

也可以在 hive shell 中執行

$ hive

hive> source /temp/123.hql;

指定乙個檔案,但 cli 啟動時,在提示符出現之前會先執行這個檔案

在提示符出現前,hive 會自動在 home 目錄下尋找 .hiverc 檔案,自動執行裡面的命令

會將最近 100,00 條命令記錄到 $home/.hivehistory 中

在命令前加上 !

hive> ! pwd;

不支援管道功能,和檔名的自動補全功能

這種方式比 hadoop dfs 更高效,,hadoop 每次都會啟動乙個新 jvm 例項,hive 就在同乙個程序中

執行查詢就會顯示欄位名了

Hive CLI 常用操作

執行乙個查詢 hive home bin hive e select a.col from tab1 a 之後過程中,會在終端上顯示mapreduce的進度,執行完畢後,最後把查詢結果輸出到終端上,接著hive程序退出,不會進入互動模式。使用靜音模式執行乙個查詢 hive home bin hive...

Hive cli原始碼閱讀和梳理

對cli的重新認識 hive cli有兩種模式,本地模式 採用持有的driver物件來處理,遠端模式 通過連線hiveserver來實現,由此可見之前的架構圖中的描述還是模糊且帶有誤導性 支援singal的處理支援,比如對ctrl c中斷,需要兩次才完全退出互動 互動式命令處理模式 原始碼閱讀 si...

GCC命令選項 整理

由於gcc命令選項太多,以下只列部分常用選項 按a z排列 ansi 支援ansi iso c的標準語法,取消gnu的語法擴充套件中與標準有衝突部分 但這一項並不能保證生成ansi相容 b machine 在有的時候,gcc編譯器編譯出來的目標 並不是在執行這個編譯動作的機器上執行而是另外一台機器,...