黃國芳 劉喜蘋




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