黃國芳 劉喜蘋
摘要:計算機應(yīng)用大數(shù)據(jù)調(diào)度就是如何高效處理有用數(shù)據(jù)的使用,在任務(wù)之間調(diào)度數(shù)據(jù)處理的效率對系統(tǒng)的性能和資源的利用非常重要。本文介紹了計算機應(yīng)用大數(shù)據(jù)調(diào)度系統(tǒng)的結(jié)構(gòu)、系統(tǒng)選型、設(shè)計原則與系統(tǒng)的部分功能,該系統(tǒng)能夠為企業(yè)平臺的分布式數(shù)據(jù)庫進行自動管理,提升分布式數(shù)據(jù)庫使用效率,降低人力成本,同時又保障了企業(yè)分布式數(shù)據(jù)庫的安全、穩(wěn)定、高效的運行。
關(guān)鍵詞:大數(shù)據(jù);分布式;調(diào)度系統(tǒng)
1.綜述
廣泛應(yīng)用的移動互聯(lián)網(wǎng),使數(shù)據(jù)源呈現(xiàn)多樣化,數(shù)據(jù)量井噴式的爆炸增長,數(shù)據(jù)收集技術(shù)不斷得到完善,各行各業(yè)越來越重視從海量數(shù)據(jù)提取有價值的數(shù)據(jù),使得數(shù)據(jù)的收集已轉(zhuǎn)向數(shù)據(jù)的處理,要充分挖掘數(shù)據(jù)的價值[1]。
搭建數(shù)據(jù)平臺(BP)的過程中,涉及海量的數(shù)據(jù)采集、處理、調(diào)度、計算等方面的工作,非常需要一款簡單易用、支持可視化管理的調(diào)度系統(tǒng)解決越來越多的任務(wù)處理問題。
2計算機應(yīng)用大數(shù)據(jù)調(diào)度系統(tǒng)
調(diào)度系統(tǒng)管理復(fù)雜的任務(wù)正常運行,按照調(diào)度配置發(fā)出調(diào)度請求,負責從數(shù)據(jù)倉庫調(diào)取數(shù)據(jù),同時記錄執(zhí)行的日志文件與可能要調(diào)取的日志,通過MySql的處理,導(dǎo)出數(shù)據(jù)到報表,或?qū)С龅街髡竟┯脩羰褂茫湔{(diào)度系統(tǒng)功能結(jié)構(gòu)如圖1所示[2]。
一個分布式任務(wù)調(diào)度系統(tǒng)有web模塊、server模塊、Scheduler模塊、worker模塊、注冊中心。Web模塊,任務(wù)管理、信息展示、控制任務(wù)的狀態(tài)等。Server模塊,負責接收web端傳來的任務(wù)執(zhí)行的信息,下發(fā)任務(wù)調(diào)度請求給Scheduler,去注冊中心進行注冊。Scheduler模塊,接收server端傳來的調(diào)度請求,將任務(wù)進行更加細化的拆分然后下發(fā),到注冊中心進行注冊,獲取到可以干活的worker。Worker模塊實現(xiàn)具體的任務(wù)運行,注冊中心完成任務(wù)信息的注冊等等。
2.1分布式任務(wù)調(diào)度系統(tǒng)結(jié)構(gòu)
一個分布式任務(wù)調(diào)度系統(tǒng)由調(diào)度與執(zhí)行兩大模塊構(gòu)成[3]。調(diào)度模塊(簡稱調(diào)度中心)負責調(diào)度信息,根據(jù)調(diào)度配置發(fā)出調(diào)度請求,與任務(wù)解耦,本身不負擔業(yè)務(wù)代碼,其性能不受限于任務(wù)模塊,支持可視化、簡單且動態(tài)的管理調(diào)度信息、監(jiān)控調(diào)度結(jié)果及日志執(zhí)行等[4]。執(zhí)行模塊(簡稱執(zhí)行器)負責接收調(diào)度請求并執(zhí)行對應(yīng)的任務(wù)JobHandler(將任務(wù)抽象成JobHandler),接收調(diào)度模塊的執(zhí)行請求、終止請求、日志請求等,按照調(diào)度中心的配置地址,在調(diào)度中心主動注冊,滿足任務(wù)觸發(fā)前提,調(diào)度中心下發(fā)任務(wù),基于線程池執(zhí)行任務(wù)的執(zhí)行器把執(zhí)行結(jié)果寫入內(nèi)存隊列、執(zhí)行日志寫入日志文件,返回線程自動上報到調(diào)度中心,用戶在調(diào)度中心察看任務(wù)日志,調(diào)度中心請求任務(wù)執(zhí)行器,任務(wù)執(zhí)行器讀取任務(wù)日志并返回日志詳情。其系統(tǒng)開發(fā)和維護更簡單高效,其結(jié)構(gòu)如圖2所示[5]。
2.2系統(tǒng)選型
當前市場上的作業(yè)調(diào)度系統(tǒng)按功能主要劃分為定時分片與DAG工作流作業(yè)調(diào)度系統(tǒng)。根據(jù)用戶需求、分析調(diào)研,計算機應(yīng)用大數(shù)據(jù)調(diào)度系統(tǒng)選擇能正確處理復(fù)雜任務(wù)調(diào)度的DAG工作流調(diào)度。在DAG工作流調(diào)度中,存在機靈的任務(wù)觸發(fā)機制和繁瑣的作業(yè)依賴,通過優(yōu)先級任務(wù)管理、服務(wù)隔離和權(quán)限管理解決較復(fù)雜的調(diào)度任務(wù)。同時,對實時性要求強、服務(wù)鏈路較短、優(yōu)先級要求不高、很難出現(xiàn)競爭資源等任務(wù),經(jīng)過資源隔離實現(xiàn)資源的可用性,權(quán)限管理也是用資源隔離來實現(xiàn)資源的可用性。
還有運行大量作業(yè)時,使用優(yōu)先級、負載隔離和權(quán)限管理的方法來實現(xiàn)共享系統(tǒng)資源。由業(yè)務(wù)流程的復(fù)雜性引發(fā)的像暫停任務(wù)、刷新歷史數(shù)據(jù)、手動標志失敗或成功等處置,有任務(wù)故障報警、超時報警、流量負載監(jiān)控、任務(wù)進度監(jiān)控預(yù)測等完備的監(jiān)控和報警通知機制,使得調(diào)度系統(tǒng)具有強大的性能[1]。
Azkaban比Oozie更方便學(xué)習(xí)上手,其配置也比Oozie較簡單,使用Web用戶界面對工作流程進行保護和追蹤,因此采用Azkaban框架完成計算機應(yīng)用大數(shù)據(jù)調(diào)度系統(tǒng)的開發(fā)。
2.3設(shè)計原則
通過用戶調(diào)研和業(yè)務(wù)需求分析,主要考慮系統(tǒng)的可靠性、實用性、安全性、兼容性及擴展性,同時也要重點考慮簡易性、成本及時效。
2.3.1可靠性原則
計算機應(yīng)用大數(shù)據(jù)調(diào)度系統(tǒng)在使用時,系統(tǒng)的可靠性是保證任務(wù)正常執(zhí)行的關(guān)鍵。一般環(huán)境下不同類型的工作流被同時調(diào)度,這些工作流存在復(fù)雜的依賴,任何一類工作流出現(xiàn)異常不能影響其他工作流的正常運行,這就要求大數(shù)據(jù)調(diào)度系統(tǒng)的可能性非常高。
根據(jù)軟件開發(fā)協(xié)議條款,逐一對本系統(tǒng)結(jié)構(gòu)、文檔管理和測試等工作嚴格要求規(guī)劃,是確保本系統(tǒng)可靠性的重要環(huán)節(jié)。
2.3.2實用性原則
系統(tǒng)功能展示采用簡潔流暢的圖形化、模塊化,讓用戶的精力集中在系統(tǒng)應(yīng)用上,方便快捷的操作,提高了系統(tǒng)運行維護管理的效率和減少人力成本。軟件模塊化設(shè)計,使得用戶只需要根據(jù)自己的需求選擇有用的功能和模塊,提高利用率。
2.3.3安全性原則
應(yīng)用系統(tǒng)的安全性是要考慮的重點,同樣調(diào)度系統(tǒng)的安全性是重中之重。調(diào)度系統(tǒng)的安全性包括系統(tǒng)管理權(quán)限的驗證與數(shù)據(jù)安全,應(yīng)用系統(tǒng)開發(fā)時,對系統(tǒng)管理權(quán)限進行控制,不同權(quán)限的開發(fā)人員只能在規(guī)定的權(quán)限內(nèi)完成任務(wù);數(shù)據(jù)庫采取安全機制是保證數(shù)據(jù)安全的前提,避免數(shù)據(jù)庫故障發(fā)生數(shù)據(jù)丟失,備份重要數(shù)據(jù)、保護核心代碼等措施。
2.3.4兼容性及擴展性原則
系統(tǒng)通過協(xié)議與接口,在上下實現(xiàn)了兼容不同新舊技術(shù)和設(shè)備,很容易實現(xiàn)與外部系統(tǒng)的連接與通訊,同時方便產(chǎn)品更新和技術(shù)服務(wù)的選擇。計算機應(yīng)用大數(shù)據(jù)調(diào)度系統(tǒng)的任務(wù)邏輯非常復(fù)雜,一次開發(fā)很難全面周到地考慮業(yè)務(wù)需要,在系統(tǒng)設(shè)計時提供二次開發(fā)接口及編程環(huán)境,延長使用周期。
2.4系統(tǒng)部分功能介紹
開發(fā)的計算機應(yīng)用大數(shù)據(jù)調(diào)度系統(tǒng),是一款大數(shù)據(jù)的運維可視化分布式調(diào)度系統(tǒng)[6]。能夠為企業(yè)平臺的分布式數(shù)據(jù)庫進行自動管理,提升分布式數(shù)據(jù)庫效率,降低人力成本,同時又保障了企業(yè)分布式數(shù)據(jù)庫的安全、穩(wěn)定、高效的運行。
2.4.1數(shù)據(jù)處理控制管理
由集群部署完成數(shù)據(jù)處理與控制管理。集群可以及時根據(jù)業(yè)務(wù)和應(yīng)用的需求,對集群中的節(jié)點和存儲空間進行增加或刪除,節(jié)省成本。數(shù)據(jù)處理集群布置幫助用戶把必要處置的大量數(shù)據(jù)分散到集群中、交給系統(tǒng)內(nèi)的計算機組同時計算,將合并計算結(jié)果獲得最終處理的數(shù)據(jù),由主機確認處理的結(jié)果。進行數(shù)據(jù)處理集群部署的管理[7]與維護中有可能出現(xiàn)各種問題,管理員需要分析LOG和不時查看監(jiān)控,善于發(fā)現(xiàn)問題,及時分析和解決Cluster(Cluster的基本監(jiān)控指標如CUP、內(nèi)存、存儲資源、網(wǎng)絡(luò)等)中的報警。監(jiān)控主要是用ELK的日志監(jiān)控分析系統(tǒng),通過Beats收集日志和數(shù)據(jù),再分發(fā)給Logstash來分析和處理日志,然后由Elasticsearch存儲和檢索,最后由Kibana在Web GUI頁面上展示出來。服務(wù)選擇幫助用戶對數(shù)據(jù)處理分布式調(diào)度進行數(shù)據(jù)處理服務(wù)選擇的管理,并進行數(shù)據(jù)處理分布式調(diào)度操作[8]。運行系統(tǒng)的部分效果如圖3是集群部署操作界面、圖4是數(shù)據(jù)監(jiān)控效果界面。
2.4.2數(shù)據(jù)分布式調(diào)度管理
數(shù)據(jù)分布式調(diào)度管理作為大數(shù)據(jù)調(diào)度系統(tǒng)的重要組成部分,由服務(wù)器池、分發(fā)器、工作站、互聯(lián)網(wǎng)、用戶終端組成的分布式調(diào)度集群,其中用戶終端發(fā)送連接請求報文,最終從服務(wù)器池中獲取相應(yīng)的報文;用戶終端發(fā)出連接請求報文給分發(fā)器,并將連接請求轉(zhuǎn)發(fā)到服務(wù)器池(即執(zhí)行服務(wù)器)集群中;分發(fā)器轉(zhuǎn)發(fā)連接請求給服務(wù)器池,并向用戶終端返回請求結(jié)果;工作站用于對分發(fā)器和服務(wù)器池進行配置和管理,確保分發(fā)器和服務(wù)器池中的執(zhí)行服務(wù)器能正常工作。
同時工作站由監(jiān)控、管理節(jié)點構(gòu)成,是對分發(fā)器和執(zhí)行服務(wù)器監(jiān)控和管理。監(jiān)控每臺服務(wù)器的運行狀況,只要其中某一臺服務(wù)器呈現(xiàn)故障,系統(tǒng)將服務(wù)調(diào)度到能正常工作的服務(wù)器上運行;通過對各種參數(shù)的配置管理,如配置執(zhí)行服務(wù)器向分發(fā)器索取任務(wù)的頻率等,工作站通過網(wǎng)卡之間的數(shù)據(jù)傳輸分別完成與分發(fā)器、執(zhí)行服務(wù)器之間的通訊。
當有新的執(zhí)行服務(wù)器(節(jié)點)加入到集群時,通常在工作站中輸入該節(jié)點的ip地址并應(yīng)用生效;同樣需要從集群中退出某臺執(zhí)行服務(wù)器,也只要在工作站中刪除或者暫停該節(jié)點的ip地址并應(yīng)用生效。此方法一樣應(yīng)用于分發(fā)器的動態(tài)加入與退出,來實現(xiàn)服務(wù)器節(jié)點的動態(tài)加入與退出。系統(tǒng)運行的部分數(shù)據(jù)分布式調(diào)度管理的效果如圖5是分配Master組件給相應(yīng)的主機示意圖、圖6是分布式調(diào)度集群在最近半小時的健康度。
總之,移動互聯(lián)網(wǎng)環(huán)境下,需要分析處理海量復(fù)雜的數(shù)據(jù),隨著分布式計算框架不斷增多,需要一個良好的調(diào)度系統(tǒng)支撐平臺。經(jīng)過本系統(tǒng)證實:實現(xiàn)的計算機應(yīng)用大數(shù)據(jù)調(diào)度系統(tǒng)能夠滿足一般企業(yè)的要求,為企業(yè)平臺的分布式數(shù)據(jù)庫進行自動管理,提升分布式數(shù)據(jù)庫效率,降低人力成本,同時保障了企業(yè)分布式數(shù)據(jù)庫的安全、穩(wěn)定、高效的運行。
參考文獻:
[1]何明光.大數(shù)據(jù)應(yīng)用調(diào)度系統(tǒng)的設(shè)計與實現(xiàn)[D].北京交通大學(xué),2019-01-01.
[2]大數(shù)據(jù)應(yīng)用篇之調(diào)度系統(tǒng)[OL].https://zhuanlan.zhihu.com/p/125718254,2020-04-05.
[3]王昆.高可用分布式任務(wù)調(diào)度與執(zhí)行系統(tǒng)設(shè)計與實現(xiàn)[D].西安電子科技大學(xué),2019-01-01.
[4]凌波.分布式任務(wù)調(diào)度在集中MSS系統(tǒng)中的實踐應(yīng)用[J].江蘇通信,2021-03-01.
[5]一文讀懂分布式任務(wù)調(diào)度平臺XXL-JOB[OL].https://www.cnblogs.com/caison/p/11641161.html,2019-10-09.
[6]齊海洋.大數(shù)據(jù)分析系統(tǒng)邏輯數(shù)據(jù)塊親和性調(diào)度算法的研究與實現(xiàn)[D].西安電子科技大學(xué),2019-01-01.
[7]龍毅.公安大數(shù)據(jù)平臺建設(shè)策略探究[J].消費導(dǎo)刊,2018-11-01.
[8]周全海.大數(shù)據(jù)環(huán)境下的計算機信息處理技術(shù)分析[J].信息技術(shù)與信息化,2020(5):243-245.