如何去實現hive離線分析指令碼

2021-10-08 15:40:32 字數 1105 閱讀 1862

總共分為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...