總共分為3步:
1.編寫hql指令碼
簡單案例:
編寫hql指令碼:vim tongji1.hql
內容如下:
select
*from fluxdb.tongji1 where reporttime=
'$';
很簡單就是乙個表查詢,沒啥邏輯
儲存退出後,記得 賦予執行許可權:chmod +x tongji1.hql
2.編寫bash指令碼
#!/bin/bash
#source /etc/profile;
export hadoop_home=/home/01/software/hadoop-2.7.1
statis_time=
`date +%y-%m-%d`
/home/01/software/hive-1.2/bin/hive -d statis_date=
$ -f /home/01/temp/tongji1.hql >>/home/01/temp/tongji1_data_$.txt 2>>/home/01/temp/tongji1_$.log &
這裡解釋下:
>tongji1_data_$.txt #是將hivesql指令碼查詢的資料輸入到tongji1_data.txt檔案中,注意這裡是覆蓋,如果此檔案存在且裡面有資料則直接從前排開始覆蓋,如果在執行指令碼的時候tongji1_data.txt檔案不存在,則自動在指令碼所在目錄下建立此檔案
>>tongji1_data_$.txt #是將資料追加到資料檔案中,與上面不同
2>tongji1_$.log # 是將指令碼執行資訊輸入到日誌檔案中,以便後續排查問題,如果不需要日誌資訊則可以寫成: 2>/dev/null
是將指令碼命令後台執行
3.配置定時任務
定時任務我這邊用的是crontab去做的定時
執行crontab -e
命令 編輯該使用者的定時任務
下面是每分鐘執行一次(測試簡單查詢):
*/1 * * * * /home/01/temp/flux.sh
Shell指令碼實現執行 Hive指令碼
hive是基於hadoop的乙個資料倉儲工具,可以將結構化的資料檔案hive對映為一張資料庫表,並提供完整的sql查詢功能,可以將sql語句轉換為mapreduce任務進行執行。hive目前還不支援像mysql那樣的sql指令碼,如果遇到需要批量處理hql就會比較麻煩 這兩天就遇到需要批量刪除有命名...
如何實現離線群聊
1.群聊訊息要儲存進資料庫,群訊息要有乙個有序id標識。離線使用者上線時,要拉取檢視 2.每個群成員都要在資料庫裡,記錄他最後收到的那個群訊息id。在他上線時,根據這個id和最新id,決定要給他推送哪些訊息 3.使用者收到訊息後,要發個ack給服務端,服務端才跟新他的最後收到訊息id。避免訊息丟包 ...
如何用指令碼離線備份Domino系統
目的 將 domino 伺服器需要的備份資料檔案壓縮並備份下來 要求 作業系統 必須是 windows 系統 服務要求 安裝之後,domino service 必須在作業系統的 服務 中 壓縮軟體要求 winrar 3.20 版 邏輯說明 1.先停止 domino server 2.利用 winra...