從頭學習大數據培訓課程 任務調度工具 oozie(三)Linux 的 crontab 和 oozie 的 cronschedule
來自專欄 從頭學習大數據
1.linux的crontab
cron不停地檢查所有配置的任務在當前是否應該運行,任務運行的最小時間間隔是1分鐘,也就是說任務最頻繁只能每分鐘運行一次。
(1).crontab命令選項
crontab -u <-l, -r, -e>-u:指定一個用戶-l:列出某個用戶的任務計劃-r:刪除某個用戶的任務
-e:編輯某個用戶的任務(2).cron文件語法與寫法
可用crontab -e命令來編輯,編輯的是/var/spool/cron下對應用戶的cron文件,也可以直接修改/etc/crontab文件。具體格式如下:Minute Hour Day Month Week command分鐘 小時 天 月 星期 命令0-59 0-23 1-31 1-12 0-6 command每個欄位代表的含義如下:
Minute, 每個小時的第幾分鐘執行該任務
Hour,每天的第幾個小時執行該任務
Day,每月的第幾天執行該任務Month,每年的第幾個月執行該任務DayOfWeek,每周的第幾天執行該任務,0表示周日Command,指定要執行的程序 、腳本或命令在這些欄位里,除了「Command」是必須指定的欄位以外,其它欄位皆為可選。對於不指定的欄位,要用「」來填補其位置。例如: command分 時 日 月 周 命令(3).幾個特殊符號的含義
「*」代表取值範圍內的數字,
「/」代表」每」,「-」代表從某個數字到某個數字,「,」分開幾個離散的數字(4). 關於cron配置文件/etc/crontab
cron 的主配置文件是 /etc/crontab前三行是用來配置 cron 任務運行環境的變數:
Shell 變數的值指定shell 環境(此處默認為 bash shell);PATH 變數定義用來執行命令的程序路徑;cron 任務的輸出被郵寄給 MAILTO 變數定義的用戶名,如果 MAILTO 變數被定義為空白字元串(MAILTO=""),電子郵件就不會被寄出;每次編輯完某個用戶的cron設置後,cron自動在/var/spool/cron下生成一個與此用戶同名的文件,此用戶的cron信息都記錄在這個文件中,這個文件是不可以直接編輯的,只可以用crontab -e 來編輯。cron啟動後每過一份鍾讀一次這個文件,檢查是否要執行裡面的命令。因此此文件修改後不需要重新啟動cron服務。
(5).常見cron示例參考
5 ls
指定每小時的第5分鐘執行一次ls命令30 5 * ls
指定每天的 5:30 執行ls命令30 7 8 ls
指定每月8號的7:30分執行ls命令30 5 8 6 * ls
指定每年的6月8日5:30執行ls命令30 6 0 ls
指定每星期日的6:30執行ls命令
[註:0表示星期天,1表示星期1,以此類推,也可以用英文來表示,sun表示星期天,mon表示星期一等。]30 3 10,20
ls 每月10號及20號的3:30執行ls命令[註:「,」用來連接多個不連續的時段]25 8-11 * ls
每天8-11點的第25分鐘執行ls命令[註:「-」用來連接連續的時段]/15 * ls
每15分鐘執行一次ls命令 [即每個小時的第0 15 30 45 60分鐘執行ls命令 ]30 6 /10 * ls
每個月中,每隔10天6:30執行一次ls命令[即每月的1、11、21、31日是的6:30執行一次ls命令 ]50 7 * root run-parts /etc/cron.daily
每天7:50以root 身份執行/etc/cron.daily目錄中的所有可執行文件[ 註:run-parts參數表示,執行後面目錄中的所有可執行文件10,20,30 echo "第10、20、30分鐘輸出一次" >> /tmp/cron1.txt
第10、20、30分鐘輸出到/tmp/cron1.txt:0 /2 http://lzw.me /usr/bin/somecommand >> /dev/null 2>&1
以用戶http://lzw.me的身份每兩小時就運行某個程序:(6).啟動或關閉
由於Cron 是linux的內置服務,可以用以下的方法啟動、關閉這個服務:
service crond start //啟動服務service crond stop //關閉服務service crond restart //重啟服務service crond reload //重新載入配置(7).cron任務文件
cron 會從如下這些地方讀取安裝的任務:/etc/anacrontab
這個文件存著系統級的任務。它主要用來運行每日的(daily),每周的(weekly),每月的(monthly)的任務。一般不在此文件安裝自己的任務/etc/cron.d/
此目錄下存放的是系統級任務的任務文件。
/var/spool/cron/
此目錄下存放各個用戶的任務文件。各個用戶的任務存放在以自已用戶名為文件名的任務文件中。此文件中的指令行沒有用戶域。新任務安裝後或任務修改後不需要重啟cron進程即可生效。
(8).日誌文件
可以通過查看文件/var/log/cron查看任務的運行情況。2.oozie cron
coordinator.xml在hdfs上的路徑
oozie.coord.application.path=${nameNode}/work/coordinator.xml
定時任務的開始時間 以UTC時區為準
start=2016-11-03T09:00Z
定時任務的結束時間
end=2019-07-30T16:00Z
coordinator.xml
frequency執行頻率 ${coord:minutes(5)}為coordinator內置的EL function (Expression Language) ${workflowAppUri}jobTracker${jobTracker}nameNode${nameNode}queueName${queueName}
EL常量
當配置小於5分鐘時不允許提交
oozie job -kill 0000013-170623101932366-oozie-hado-C
3.oozie schedule
雖然配置的是每1分鐘執行1次,但是調度周期還是每5分鐘一執行
海牛學院青牛原創 | 轉載請聯繫青牛
推薦閱讀:
※LDAP 基礎學習筆記(概念 & 快速安裝)
※平時寫linux下c有哪些好用的查函數軟體?
※RHCE证书的含金量怎么样,这个证好不好考,考出来以后做关于Linux的哪方面工作,或者在公司能够做什么
※關於 Linux 你可能不是非常了解的七件事
※Fedora 26 正式發布!