hera分布式任務(wù)調(diào)度系統(tǒng)
hera 分布式任務(wù)調(diào)度系統(tǒng)是根據(jù)前阿里開源調(diào)度系統(tǒng)(zeus)進(jìn)行的二次開發(fā)。
架構(gòu)
hera系統(tǒng)只是負(fù)責(zé)調(diào)度以及輔助的系統(tǒng),具體的計(jì)算還是要落在hadoop、hive、yarn、spark等集群中去。所以此時(shí)又一個(gè)硬性要求,如果要執(zhí)行hadoop,hive,spark等任務(wù),我們的hera系統(tǒng)的worker一定要部署在這些集群某些機(jī)器之上。如果僅僅是shell,那么也至少需要linux系統(tǒng)。對(duì)于windows系統(tǒng),可以把自己作為master進(jìn)行調(diào)試。
hera系統(tǒng)本身嚴(yán)格的遵從主從架構(gòu)模式,由主節(jié)點(diǎn)充當(dāng)著任務(wù)調(diào)度觸發(fā)與任務(wù)分發(fā)器,從節(jié)點(diǎn)作為具體的任務(wù)執(zhí)行器.架構(gòu)圖如下:
設(shè)計(jì)目標(biāo)
hera分布式任務(wù)調(diào)度系統(tǒng)的設(shè)計(jì)目標(biāo)首先是要完成zeus大部分核心功能,并能夠根據(jù)自己公司的需求進(jìn)行擴(kuò)展。大致目標(biāo)有以下幾點(diǎn)
-
支持任務(wù)的定時(shí)調(diào)度、依賴調(diào)度、手動(dòng)調(diào)度、手動(dòng)恢復(fù)
-
支持豐富的任務(wù)類型:
shell,hive,python,spark-sql,java -
可視化的任務(wù)
DAG圖展示,任務(wù)的執(zhí)行嚴(yán)格按照任務(wù)的依賴關(guān)系執(zhí)行 -
某個(gè)任務(wù)的上、下游執(zhí)行狀況查看,通過任務(wù)依賴圖可以清楚的判斷當(dāng)前任務(wù)為何還未執(zhí)行,刪除該任務(wù)會(huì)影響那些任務(wù)。
-
支持上傳文件到
hdfs,支持使用hdfs文件資源 -
支持日志的實(shí)時(shí)滾動(dòng)
-
支持任務(wù)失敗自動(dòng)恢復(fù)
-
實(shí)現(xiàn)集群HA,機(jī)器宕機(jī)環(huán)境實(shí)現(xiàn)機(jī)器斷線重連與心跳恢復(fù)與
hera集群HA,節(jié)點(diǎn)單點(diǎn)故障環(huán)境下任務(wù)自動(dòng)恢復(fù),master斷開,worker搶占master -
支持對(duì)
master/work負(fù)載,內(nèi)存,進(jìn)程,cpu信息的可視化查看 -
支持正在等待執(zhí)行的任務(wù),每個(gè)
worker上正在執(zhí)行的任務(wù)信息的可視化查看 -
支持實(shí)時(shí)運(yùn)行的任務(wù),失敗任務(wù),成功任務(wù),任務(wù)耗時(shí)
top10的可視化查看 -
支持歷史執(zhí)行任務(wù)信息的折線圖查看 具體到某天的總運(yùn)行次數(shù),總失敗次數(shù),總成功次數(shù),總?cè)蝿?wù)數(shù),總失敗任務(wù)數(shù),總成功任務(wù)數(shù)
-
支持關(guān)注自己的任務(wù),自動(dòng)調(diào)度執(zhí)行失敗時(shí)會(huì)向負(fù)責(zé)人發(fā)送郵件
-
對(duì)外提供
API,開放系統(tǒng)任務(wù)調(diào)度觸發(fā)接口,便于對(duì)接其它需要使用hera的系統(tǒng) -
組下任務(wù)總覽、組下任務(wù)失敗、組下任務(wù)正在運(yùn)行
-
支持
map-reduce任務(wù)和yarn任務(wù)的實(shí)時(shí)取消。 -
(還有更多,等待大家探索)
