新四季網

大數據即時調度方法與流程

2023-09-23 08:02:45 4

本發明涉及大數據,特別涉及一種大數據即時調度方法。



背景技術:

雲計算通過網際網路將龐大的數據存儲和計算處理程序分布到集群系統的計算機中,並且提供相應的應用程式服務。用戶在對資源提交訪問請求時,系統能夠自動地將請求切換到實際的存放資源的計算機和存儲系統。虛擬化技術的雲計算平臺在海量數據處理方面取得了令人滿意的成果。但云計算將海量數據分布在大規模集群上進行並行處理,由於目前主流雲計算平臺底層採用虛擬化技術,其上所有軟體和應用均運行在虛擬硬體之上,這種策略必然帶來一定程度上的性能降低。而且mapreduce內部實現機制是採用先存儲數據再讀出轉發處理的策略,當中間數據量變大、個數增多時,這種模式必然產生大量的無用的磁碟i/o操作;如果數據在遠端,這樣會增加網絡負載;如果數據在本地,則會受i/o瓶頸限制,從而降低了任務執行的效率。



技術實現要素:

為解決上述現有技術所存在的問題,本發明提出了一種大數據即時調度方法,包括:

主節點將作業分成獨立的任務,並維護任務狀態數組;負載節點啟動後,向主節點申請任務,得到任務後按預定的方案執行任務;任務執行完成後,將任務的結果反饋給主節點並申請下一個任務;如果負載節點得到的任務信息無效,則本次並行計算任務成功完成,負載節點結束業務;從任務隊列取出最高優先級的作業;主節點對作業進行分片,得到一級分片,放入負載池;主節點查詢狀態表得到一級分片的信息,然後獲取到此分片中所有二級分片的執行信息打包發送給負載;負載接收到任務,對此片做內存映射和二次分片,檢測總的核心數,建立線程池,然後將分片放入線程池,線程通過負載內部狀態表取得二級任務分片,直到表中內容全部為執行完成;負載節點的每個線程執行完成一個二級任務分片後進行一次reduce,將reduce結果和內部狀態表發送給主節點,主節點確定是否給此負載發送另外一個分片,若需要發送新的任務,則繼續取任務發送給負載;直到狀態表中內容全部為執行完成後,主節點給每個負載發送退出指令,負載觸發事件信號,通知監控等待退出,所有負載和主節點等待一起退出;主節點將負載發送來的結果進行reduce操作;主節點分析傳入的命令行參數以得到本次並行接口作業的相關信息;依據主機列表文件,動態分配多個負載節點並構成一個通信域,然後等待負載節點申請任務或提交任務結果;然後基於並行計算接口的動態進程創建與管理模型,分配符合主機列表文件要求的負載進程主節點將任務通過map過程分發給負載節點,並從負載節點通過reduce過程得到對應的任務結果;歸併這些中間結果,得到本次並行計算作業的最終結果,最後把這個結果遠程反饋給任務提交者;一旦主節點偵測到某一個負載節點發生異常,則產生新的主機列表文件,並分配新的負載節點來接替異常的負載節點執行任務;如果主節點發現任務對應的狀態數組中的所有項都是已完成,則主節點將最終的作業結果通過套接字通信遠程反饋給相對應的任務提交者。

本發明相比現有技術,具有以下優點:

本發明提出了一種大數據即時調度方法,提高了雲計算的效率,以滿足高性能雲計算的需要。

附圖說明

圖1是根據本發明實施例的大數據即時調度方法的流程圖。

具體實施方式

下文與圖示本發明原理的附圖一起提供對本發明一個或者多個實施例的詳細描述。結合這樣的實施例描述本發明,但是本發明不限於任何實施例。本發明的範圍僅由權利要求書限定,並且本發明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細節以便提供對本發明的透徹理解。出於示例的目的而提供這些細節,並且無這些具體細節中的一些或者所有細節也可以根據權利要求書實現本發明。

本發明的一方面提供了一種大數據即時調度方法。圖1是根據本發明實施例的大數據即時調度方法流程圖。

本發明設計的高性能雲計算平臺不經過虛擬化,直接使用異構計算節點構建雲平臺底層;採用增加多級容錯功能的並行計算接口技術和多線程技術重寫mapreduce,在計算中避免大量的無用的i/o操作,從而提高了雲計算的效率,以滿足高性能雲計算的需要。在節點異構環境下,基於hadoop,使用異構硬體架設雲基礎設施服務層,實現作業二次調度,作業/任務回滾和動態遷移,基於多級容錯並行計算接口的建立mapreduce架構。對中間結果進行直接處理,減少不必要的i/o操作。

本發明的基於hadoop的雲計算平臺架構包括異構計算節點、基於並行計算接口的容錯單元、監控模塊、作業管理模塊、任務管理模塊、分布式資料庫和mapreduce計算框架。

作業管理模塊用於保存作業隊列,管理作業的調度,監控作業的執行,提供相應的容錯,支持遠程作業提交以及結果返回。監控模塊用於管理可用主機列表,發現異常節點並根據負載情況對節點排序,以首先選擇負載最小的節點執行任務。任務管理模塊用於任務劃分和分配調度,任務執行,收集並返回結果。

作業管理模塊中包含作業通信子模塊,根據用戶交互,實現作業提交與結果反饋;作業管理子模塊據作業的管理和調度,維護作業隊列,按優先級進行作業調度;監控模塊據監控所有節點的運行情況和負載程度,並據此為任務執行模塊提供所需的主機列表文件。

任務管理模塊是作業的具體執行模塊,對作業進行分片,並對分片進行合理調度,最後收集並反饋計算結果。任務管理模塊得到作業管理與調度模塊分發的作業後,按設定的策略將作業劃分成多個任務,與監控模塊進行交互以生成調度執行並行計算任務所需的主機列表文件;然後基於並行計算接口的動態進程創建與管理模型,分配符合主機列表文件要求的負載進程主節點將任務通過map過程分發給負載節點,並從負載節點那裡通過reduce過程得到對應的任務結果;歸併這些中間結果就可以得到本次並行計算作業的最終結果,最後把這個結果遠程反饋給任務提交者。一旦主節點偵測到某一個負載節點發生異常,則與監控模塊交互以產生新的主機列表文件,並分配新的負載節點來接替異常的負載節點執行任務。

作業通信子模塊初始化後,依照用戶的設定,需要綁定的本地套接伺服器地址以及作業管理子模塊的套接伺服器遠程地址,並創建兩個工作線程:等待線程:循環等待接收來自任務管理模塊反饋的作業結果;發送線程,一旦用戶提交了新作業,基於作業管理子模塊的伺服器地址,藉助套接字把用戶輸入的作業打包發送給作業管理子模塊。

作業管理子模塊等待作業通信子模塊提交給自己的作業。在工作線程中,創建了兩個工作線程。解析線程,用於維護本地的套接伺服器,得到作業通信子模塊遠程提交的作業,解析該信息並確認該信息是否符合規則,將合格的作業綁定作業提交者的地址後放置到多優先級作業隊列中,以待被調度執行。掃描線程,循環掃描多優先級作業隊列以確定隊列中是否有較高優先級的作業,若有較高優先級的作業存在,則取出作業,依據作業構造命令行並啟動多個任務執行模塊的進程來完成本次並行計算作業;循環等待本次並行計算作業執行結束;如果是作業不是正常執行完成則判斷發生異常,則重新調度執行本次作業。

主節點分析傳入的命令行參數以得到本次並行接口作業的相關信息。依據監控模塊生成的主機列表文件,動態分配多個負載節點並構成一個通信域,然後等待負載節點申請任務或提交任務結果。

主節點將作業分成獨立的任務,並維護一個初始值均為0的任務狀態數組,用以記錄任務執行情況。一但有負載節點申請任務,則先搜索得到狀態數組中為0的項所對應的任務,將任務分配給申請者並將狀態數組中對應項置1;如果某任務完成,則狀態數組中對應項應該被置為2;如果執行某個任務的進程異常,則狀態數組中對應項應該被重置為0,以等待重新分配給其他節點執行;如果狀態數組中標記為1的某項所對應的任務在規定時間範圍內沒有反饋結果,則判定執行該任務的進程異常,並將狀態數組中該任務對應的項重置0,以期被重新分配給其他節點執行。

如果主節點發現任務對應的狀態數組中的所有項都是2,則表明本次並行計算作業已經完成,主節點將最終的作業結果通過套接字通信遠程反饋給相對應的任務提交者。

負載節點啟動後,分析其父進程是否存在,若不存在,則拒絕執行;若存在,則判定自身是由主節點啟動。負載節點向主節點申請任務,得到任務後就按預定的方案執行任務;任務執行完成後,將任務的結果反饋給主節點並申請下一個任務。如果負載節點得到的任務信息是無效,則本次並行計算任務成功完成,負載節點結束業務。

在本發明提出的高性能雲計算平臺中包括三級容錯方案:一級容錯即作業二次調度。當系統偵測到集群中某一節點在執行任務中異常,則系統會立即重新調度執行本次任務。二級容錯即作業/任務回滾。系統回滾作業/任務至最近檢查點處執行。如果主節點異常,則本次並行計算作業失敗,系統二次調度本次並行計算作業並回滾作業的執行狀態至最近的檢查點處並繼續執行作業;如果負載節點異常,則系統嘗試重啟異常節點並回滾其任務執行狀態至最近的檢查點處並繼續執行任務。三級容錯是動態遷移。當異常的負載節點在短時間內無法得到回滾,也就是說二級容錯失敗的情況下,系統會主動將異常的工作節點的任務遷移至其他工作節點執行。為了保證並行接口集群計算能力的穩定性,並行雲計算平臺通過動態分配新的負載進程來替代異常負載進程。

本發明系統中監控模塊用於生成可用的主機列表:根據cpu核心數目和正在執行任務的進程數量比較,若進程數小於核心數則將主機名加入主機列表。若進程數不小於cpu核心數,則將主機名從主機列表中移除。監控程序中的0號進程所在的節點為監控伺服器,非0進程所在的節點任務節點。進程模型的監控的具體步驟為:

1)在每個非0進程上創建一個內核對象即事件信號,執行任務時進程打開此事件信號,計算完成觸發事件信號。此信號用於獲取進程是否等待退出。

2)得到主機名,計算出正在執行任務的進程數量m和進程中己經執行完成等待退出的數量k,建立可用主機列表文件。

3)若正在執行任務的進程數量m等於進程中己經執行完成等待退出的數量k,則將此主機名寫入主機列表文件。

主機列表的更新有兩種策略:定時更新和任務調度前更新。對於定時更新,監控程序保持一直運行,調度程序和監控不發生交互;對於任務前更新,監控程序的運行發生在分配任務前,監控程序在執行任務前自動啟動更新主機列表,然後退出,主節點進程根據可用主機列表進行動態一組進程執行任務,若其中有進程任務中途失敗,則再次自動啟動監控程序更新列表,主節點進程再根據可用主機列表啟動相應的數量的進程完成失敗進程的任務。

本發明任務調度基於作業的分片。作業從作業隊列裡取出來以後,先進行作業的一級分片,將一級分片分配到節點,然後在節點內進行二次分片,將二級分片分配到線程,任務的分配採用負載池加線程池的方法。對於map操作,一級分片的分配是根據空閒負載節點申請原則,計算能力強的節點申請更多的分片,計算能力弱的節點完成較少的分片。負載節點進行完map任務之後,直接將map的結果作為reduce的輸入進行第一次reduce,然後將結果發送給主節點做第二次reduce,並得到最終結果。

負載向負載池申請任務,主節點將查詢查詢一級分片表,若查到狀態值為未執行的分片,就將此分片信息發送給負載進程。當主節點在執行任務動態遷移的容錯策略吋,發送分片任務的起始點和終止點的位置,而且將待遷移的一級分片中的所有二級分片的執行信息表一起打包發送給負載。

若此作業是第一次被調度,則主節點將所有的一級分片都放入負載池進行調度。若作業不是第一次被調度,則主節點挑選狀態值為未完成的片進行調度。在執行調度的過程中主節點持續更新執行狀態表的內容。

主節點根據負載發送的負載內部狀態表的內容,若檢測到此時負載上的此一級分片執行到一定進度而未完成,則給它發送另外一個分片任務。主節點若檢測到執行狀態表中的內容都為已完成,則整個任務完成,給負載節點發送等待退出信號,此作業完成。對於負載節點,—級分片發送到負載之後,負載先對此一級分片做內存映射,然後檢測節點上所有處理器總的核心數,開啟相應數量的線程,啟動線程池執行任務。

在負載中,用負載內部狀態表代表一級分片。線程池根據負載內部狀態表,取出還沒有執行的分片執行map任務,然後將map任務的結果作為reduce任務的輸入執行reduce任務,在執行的過程中,每完成一個二級分片就更新負載內部狀態表的內容,並將執行得到結果和對負載內部狀態表的修改信息一併發給主節點,主節點再根據負載內部狀態表更新所有分片的執行狀態表。直到執行狀態全部為執行完成,所有分片執行完成。

作業從提交到得到結果的流程如下:作業通信子模塊提交優先級的作業;作業管理子模塊從任務隊列取出最高優先級的作業;主節點對作業進行分片,得到一級分片,放入負載池。主節點通過查詢狀態表得到一級分片的信息,然後獲取到此分片中所有二級分片的執行信息打包發送給負載;負載接收到任務,對此片做內存映射和二次分片,檢測總的核心數,建立線程池,然後將分片放入線程池,線程通過負載內部狀態表取得二級任務分片,直到表中內容全部為執行完成,退出線程,線程池銷毀。負載節點的每個線程執行完成一個二級任務分片後進行一次reduce,將reduce結果和內部狀態表發送給主節點,主節點確定是否給此負載發送另外一個分片,若需要發送新的任務,則繼續取任務發送給負載。直到狀態表中內容全部為執行完成後,主節點給每個負載發送退出指令,負載觸發事件信號,通知監控等待退出,所有負載和主節點等待一起退出。主節點將負載發送來的結果進行reduce操作。主節點將結果發送給作業的提交者作業通信子模塊。

在節點數據緩存策略中,部署在雲平臺的負載節點緩存雲平臺中節點子網中的作業。將本地索引伺服器被部署在每一個子網內,存儲正在所處雲平臺內共享的作業,以及各個作業對應的節點列表。負載節點以資源提供者的身份向本地索引伺服器註冊自己所緩存的作業。本地索引伺服器組織雲平臺內在線節點構建雲平臺中的子網,幫助子網用戶方便地找到負載節點。管理伺服器周期性地從每個雲平臺內的本地索引伺服器收集作業請求信息;每次運行緩存算法之後,管理伺服器為每個雲平臺生成兩張緩存對象清單,並且將這兩個作業列表分別發送給在雲平臺中部署的兩個負載節點;每一個存儲在節點中的作業的當前狀態也周期性地上報給管理伺服器。負載節點根據從管理伺服器收到的作業列表,更新自己的進程空間;一旦某個新的緩存對象同步完成,負載節點就會計算它的內容hash值,並向所處雲平臺內的本地索引伺服器註冊作業。

當某個雲平臺的用戶啟動一個作業時,該節點同時加入全局節點子網以及雲平臺中的子網。並向本地索引伺服器上報每個作業的運行狀態,本地索引伺服器監控雲平臺內子網,將雲平臺內每一個活動作業的相關信息發送給管理伺服器,包括作業的唯一hash標識,作業大小,正在訪問的用戶數,雲平臺內當前可用的副本數,最近請求該作業的子網用戶數等。根據從本地索引伺服器收集到的信息,管理伺服器定期執行一次緩存算法以得出每個雲平臺內的負載節點需要更新和刪除的作業。並將得出的作業清單立即發送給各個負載節點。當同步完成一個作業之後,負載節點立即向雲平臺內的本地索引伺服器註冊該作業。然後負載節點為本地請求該作業的用戶提供數據上傳。

進一步地,通過以下過程把待分發的作業分片主動發送給有空閒帶寬的節點。在管理伺服器設置決策單元,根據收集到的信息,決定需要發送的作業,並對其進行分片,發送給輔助節點的大作業分片,並向用戶的存儲器分派存儲作業。給每個選中的發送目標節點增加了一個作業,該作業在後臺運行,該作業與用戶自主執行的小作業同時進入資源提供狀態,共用上傳帶寬。當用戶離開系統,該後臺運行的作業結束。管理伺服器選擇發送目標節點,通知每個被選中的節點存儲發送目標作業的一個分片;接收到發送作業的節點從雲平臺和節點子網存儲指定的作業分片。發送的作業分片存儲完成後,發送目標節點為其他存儲節點提供上傳,作為輔助節點;當分發過程結束,管理伺服器向所有接收過發送作業的節點發出消息,通知其存儲器從用戶的進程空間中清除先前發送的作業分片。

綜上所述,本發明提出了一種大數據即時調度方法,提高了雲計算的效率,以滿足高性能雲計算的需要。

顯然,本領域的技術人員應該理解,上述的本發明的各模塊或各步驟可以用通用的計算系統來實現,它們可以集中在單個的計算系統上,或者分布在多個計算系統所組成的網絡上,可選地,它們可以用計算系統可執行的程序代碼來實現,從而,可以將它們存儲在存儲系統中由計算系統來執行。這樣,本發明不限制於任何特定的硬體和軟體結合。

應當理解的是,本發明的上述具體實施方式僅僅用於示例性說明或解釋本發明的原理,而不構成對本發明的限制。因此,在不偏離本發明的精神和範圍的情況下所做的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。此外,本發明所附權利要求旨在涵蓋落入所附權利要求範圍和邊界、或者這種範圍和邊界的等同形式內的全部變化和修改例。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀