Shell指令碼實現執行 Hive指令碼

2021-08-30 19:01:32 字數 787 閱讀 7539

hive是基於hadoop的乙個資料倉儲工具,可以將結構化的資料檔案hive對映為一張資料庫表,並提供完整的sql查詢功能,可以將sql語句轉換為mapreduce任務進行執行。

hive目前還不支援像mysql那樣的sql指令碼,如果遇到需要批量處理hql就會比較麻煩(這兩天就遇到需要批量刪除有命名規則的表的情況,想了許多土方法)。

於是就想到了用shell指令碼去實現執行批量hql命令的方法。

其實原理很簡單,在shell指令碼中用echo命令將hql命令以字串的形式『匯入』hive客戶端裡面去執行,還可以用重定向將執行結果儲存到指令碼日誌中。

下面來個簡單的一例子:

#如果已經配好環境就不需要再export了

export hadoop_home=/opt/hadoop-0.19.2/

export hive_home=/opt/hive.0.42/

echo "show tables;create table leign(id int,name string) comment 'this is a test table'

partitioned by(dt string, country string)

stored as sequencefile;show tables;exit;" | hive -u root -p *** > hive_create_table.log

以上這個例子簡單地建立了一張表,然後將建表前後所有表的情況都打到了log日誌裡面。

大家可以發揮想象,寫出自己需要的hive指令碼。

Shell指令碼執行Hive語句

一 環境 1 hadoop 0.20.2 2 hive 0.5 3 作業系統 linux m131 2.6.9 78.8axs2smp 1 smp tue dec 16 02 42 55 est 2008 x86 64 x86 64 x86 64 gnu linux 二 步驟 1 直接貼上指令碼吧 ...

Hive 指令碼執行

繼上篇ddl中load的資料繼續進行指令碼操作。hive執行指令碼 hive e sql語句 會將查詢的結果列印在控制台上。hive e sql語句 會將查詢的結果重定向到 檔案中,會顯示ok和抓取的資料條數 hive s e sql語句 會將查詢的結果重定向到 檔案中,不會顯示ok和抓取的資料條數...

shell 執行shell指令碼

bin bash echo hello world 是乙個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種 shell。echo 命令用於向視窗輸出文字。1 作為可執行程式 chmod x test.sh 使指令碼具有執行許可權 test.sh 執行指令碼注意,一定要寫成 test...