《在Mesos上使用Chronos運(yùn)行計(jì)劃任務(wù)》要點(diǎn):
本文介紹了在Mesos上使用Chronos運(yùn)行計(jì)劃任務(wù),希望對您有用。如果有疑問,可以聯(lián)系我們。
題圖:By Ellie Pritts From Unsplash
Chronost簡介
Chronos是由Airbnb公司推出的用來替代Cron的開源產(chǎn)品,這是一個(gè)用來運(yùn)行基于容器定時(shí)任務(wù)的Mesos框架.Chronos可處理依賴性和基于ISO8601的調(diào)度,你可以用它來對作業(yè)進(jìn)行編排.支持使用Mesos作為作業(yè)執(zhí)行器,支持和Hadoop進(jìn)行交互.可定義作業(yè)執(zhí)行完成后的觸發(fā)器.支持任意長度的依賴鏈.
由于Chronos以ISO8601時(shí)間規(guī)范作為定時(shí)任務(wù)的執(zhí)行時(shí)間配置,所以理解這個(gè)時(shí)間規(guī)范對配置Chronos定時(shí)任務(wù)至關(guān)重要.這里我們就簡單看下ISO8601的規(guī)則:
更詳細(xì)的ISO 8601介紹可參考:https://zh.wikipedia.org/zh-hans/ISO_8601
Chronos工作原理
Chronos以Framework身份接入Mesos,支持Zookeeper選舉高可用,同時(shí)將所有的定時(shí)任務(wù)配置存儲(chǔ)在Zookeeper里.
Chronos的工作流程描述如下:
項(xiàng)目地址:https://github.com/mesos/chronos
在安裝Chronos前你必須有一個(gè)Mesos集群環(huán)境,有關(guān)Mesos集群搭建你可以參考「使用Mesos和Marathon管理Docker集群」一文,這里就不再講述了.
這里是在之前集群環(huán)境基礎(chǔ)上搭建,所以在dev-master-01
上安裝Chronos.
由于Ubuntu 16.04不支持包安裝,這里直接用官方的Docker鏡像運(yùn)行Chronos.
zk_hosts
是給Chronos保存任務(wù)數(shù)據(jù)和進(jìn)行Leader選舉的存儲(chǔ)目錄.查看Docker容器是否正常運(yùn)行
查看相應(yīng)端口是否正常
Chronos的最新版本是v3.x,它對之前的2.x版本進(jìn)行了重寫,導(dǎo)致目前3.x的Web UI界面極其簡陋,僅僅提供了基礎(chǔ)的任務(wù)啟停和配置功能.
Chronos默認(rèn)是監(jiān)聽在4400端口,這里使用了自定義端口為8000.通過使用http://ip:8000/
來訪問.如下圖所示:
在Chronos頁面,點(diǎn)擊”ADD JOB—Scheduled”并填入以下相關(guān)信息來創(chuàng)建一個(gè)任務(wù),如下圖:
Name:Test-Chronos
Command: sleep 30
Schedule:R/2017-05-04T03:26:00.000Z/PT24H
注意:時(shí)間格式是ISO 8601表示法,時(shí)間是UTC時(shí)間.如果要加上時(shí)區(qū)可以這樣寫:R/2017-05-04T14:25:00.000+08:00/PT24H
.這樣就表示中國時(shí)區(qū),+08:00是中國的時(shí)區(qū).
在Chronos頁面,查看任務(wù)執(zhí)行的情況
在Mesos頁面,查看任務(wù)執(zhí)行的情況.
REST API包括Web UI沒有提供的功能,如Docker容器信息、時(shí)區(qū)支持、使用Mesos fetcher來下載文件到任務(wù)的工作目錄中等.
創(chuàng)建JSON文件
使用curl命令提交到Chronos
在Chronos頁面,可以看到任務(wù)已創(chuàng)建成功.
在Mesos頁面,查看任務(wù)執(zhí)行的情況.
更多API的用法可參考:https://mesos.github.io/chronos/docs/api.html
Docker容器允許你將代碼和它的依賴一起打包成一個(gè)鏡像,并分發(fā)到集群中的任何節(jié)點(diǎn)上.這極大地方便了程序的部署.這里用定時(shí)輸出一個(gè)時(shí)間的例子來體現(xiàn)這一個(gè)過程.
創(chuàng)建JSON文件
在Chronos上,使用REST API創(chuàng)建任務(wù)
在Chronos頁面確認(rèn)任務(wù)已創(chuàng)建成功.
在節(jié)點(diǎn)上確認(rèn)容器啟動(dòng)
確認(rèn)容器是否正確運(yùn)行
http://www.google.com
http://t.cn/RcpXPI2
http://qinghua.github.io/mesos-chronos/
http://www.cnblogs.com/ee900222/p/docker_2.html
http://yuerblog.cc/2017/02/14/setup-chronos-on-mesos/
文章來自微信公眾號:運(yùn)維之美
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/4178.html