目錄
命名空間
變數替換
--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編譯器編譯出來的目標 並不是在執行這個編譯動作的機器上執行而是另外一台機器,...