liteflow整體分為兩個(gè)模塊,控制臺(tái)以及執(zhí)行者;其中控制臺(tái)負(fù)責(zé)任務(wù)的關(guān)系以及執(zhí)行的調(diào)度,執(zhí)行者負(fù)責(zé)任務(wù)的具體執(zhí)行。控制臺(tái)中主要的功能圍繞在任務(wù)以及任務(wù)流。
一、主要功能介紹
1.任務(wù)
1)任務(wù)創(chuàng)建需要根據(jù)任務(wù)的周期(分、時(shí)、天等)來設(shè)置,同時(shí)需要指定任務(wù)執(zhí)行的cron表達(dá)式;其中任務(wù)周期是用來任務(wù)上下游間關(guān)聯(lián)的依據(jù),例如用來計(jì)算一周的pv總量(即上游任務(wù)為天,下游任務(wù)為周),這時(shí)會(huì)依據(jù)周期,下游任務(wù)會(huì)自動(dòng)關(guān)聯(lián)上上游任務(wù)周一到周日的任務(wù),只有上游的七個(gè)任務(wù)都執(zhí)行成功后下游才會(huì)執(zhí)行,這樣就能保證數(shù)據(jù)不會(huì)出現(xiàn)漏掉的情況
2)選擇任務(wù)運(yùn)行的插件,即任務(wù)執(zhí)行類型(hive、Python、shell等),任務(wù)的執(zhí)行插件主要是執(zhí)行者來實(shí)現(xiàn),通過容器、插件、任務(wù)詳情來實(shí)現(xiàn)任務(wù)的執(zhí)行,這個(gè)后續(xù)會(huì)有具體介紹
從表單中可以看出,任務(wù)需要指定是否可以并發(fā),并發(fā)指的是同一時(shí)間同一個(gè)任務(wù)的不同任務(wù)版本是否可以同時(shí)運(yùn)行,如果為否,需要指定運(yùn)行策略。1)忽略:即忽略正在運(yùn)行的任務(wù),將其設(shè)置為成功狀態(tài),然后當(dāng)前任務(wù)版本再執(zhí)行,這種情況適合任務(wù)運(yùn)行一次和多次沒有區(qū)別的情況,例如統(tǒng)計(jì)統(tǒng)計(jì)某網(wǎng)站當(dāng)天的pv數(shù)時(shí)。2)等待:需要等待上一個(gè)任務(wù)版本執(zhí)行完成后,再執(zhí)行當(dāng)前任務(wù),這種情況適合任務(wù)執(zhí)行以來上一次任務(wù)執(zhí)行后產(chǎn)生的數(shù)據(jù),例如統(tǒng)計(jì)每個(gè)小時(shí)環(huán)比變化數(shù)據(jù)時(shí)。


二、任務(wù)流
1.創(chuàng)建任務(wù)流
在大數(shù)據(jù)ETL相關(guān)工作中,需要依賴任務(wù)流來保證各種數(shù)據(jù)層的計(jì)算,也就是我們現(xiàn)在提到的任務(wù)流,任務(wù)流的核心是DAG原理來保證任務(wù)的按一定的規(guī)則來運(yùn)行,任務(wù)流創(chuàng)建后,需要將已添加的任務(wù)通過圖形界面建立好關(guān)聯(lián)

1)通過圖形界面編輯任務(wù)流
通過將鼠標(biāo)在任務(wù)節(jié)點(diǎn)上右鍵可以添加任務(wù),來實(shí)現(xiàn)任務(wù)的上下游關(guān)系



2)任務(wù)流修復(fù)
在日常工作很多情況下需要對(duì)任務(wù)進(jìn)行再一次修復(fù),通過圖形界面可以實(shí)現(xiàn)任務(wù)流中所有任務(wù)、從某個(gè)節(jié)點(diǎn)、僅某個(gè)任務(wù)的修復(fù);任務(wù)流的修復(fù)會(huì)根據(jù)主節(jié)點(diǎn)任務(wù)來完成數(shù)據(jù)的展示,依據(jù)主節(jié)點(diǎn)任務(wù)的任務(wù)版本以及任務(wù)流中任務(wù)關(guān)系來完成某個(gè)版本下任務(wù)流下的任務(wù)實(shí)例關(guān)系

總結(jié):
liteflow整個(gè)的核心其實(shí)是通過任務(wù)流來保證各個(gè)任務(wù)按照DAG的關(guān)系實(shí)現(xiàn)任務(wù)的順序執(zhí)行,以保證每個(gè)任務(wù)對(duì)應(yīng)能夠在上游任務(wù)數(shù)據(jù)ready的前提下再去執(zhí)行,從而保證數(shù)據(jù)的一致性