一、環境
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、直接貼上指令碼吧
#!/bin/bash
#give the params: name value tablename
if [ $# -eq 3 ]
then
name=$1
value=$2
tablename=$3
echo name=$
echo value=$
echo tablename=$
else
echo "usage: $0 username username_value tablename"
exit 1
ficd /run/hie/kakadata
#1.select the dialaccount, srcip
cd /jz/hiveuser/hive.kaka/
echo "insert overwrite directory '/bcpdata/kaka/ad_ip_$_$' select distinct if(account<>'',account,0)
as account, if(account<>'', 0, ip) as ip from $ where $='$'; " | /jz/hive-0.5.0-bin/bin/hive
2、需要注意的是這裡用到了hive.kaka目錄下的cli,所以如果這個控制端是開啟的,那麼需要先退出再執行這個指令碼。
三、總結
1、採用shell指令碼來執行一些查詢語句可以簡化很多的開發工作
2、可以利用linux自身的一些工具,實現定時的job任務
Shell指令碼實現執行 Hive指令碼
hive是基於hadoop的乙個資料倉儲工具,可以將結構化的資料檔案hive對映為一張資料庫表,並提供完整的sql查詢功能,可以將sql語句轉換為mapreduce任務進行執行。hive目前還不支援像mysql那樣的sql指令碼,如果遇到需要批量處理hql就會比較麻煩 這兩天就遇到需要批量刪除有命名...
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...