新四季網

一種感知網絡流量的YARN調度方法及系統與流程

2023-05-20 19:31:41 2


本發明屬於網際網路大數據技術領域,更具體地,涉及一種感知網絡流量的yarn調度方法及系統。



背景技術:

隨著大數據時代的來臨,每天產生大量非結構化和半結構化數據,傳統的關係型資料庫等解決方案無法存儲和處理如此規模的數據量,於是mapreduce編程模型產生。yarn(yetanotherresourcenegotiator)作為一種資源管理平臺,以其高可靠性,高容錯性,支持多種計算框架而得到廣泛應用。

由於yarn管理資源只包括了cpu和內存,沒有包含節點的網絡流量信息,而mapreduce應用非本地性的map任務需要到其他節點上去取數據,reduce任務需要到每個map任務所在的節點去取它需要處理的數據,這兩種任務都需要佔用網絡資源。yarn調度器缺乏對整個集群中網絡資源的感知,極易將reduce任務聚集在某些節點上,導致這些節點上的網絡負載高於其他節點,延長作業的執行時間。



技術實現要素:

針對現有技術的以上缺陷或改進需求,本發明的目的在於提供了一種感知網絡流量的yarn調度方法及系統,由此解決現有技術中yarn調度器缺乏對整個集群中網絡資源的感知,極易將reduce任務聚集在某些節點上,導致這些節點上的網絡負載高於其他節點,延長作業的執行時間的技術問題。

為實現上述目的,按照本發明的一個方面,提供了一種感知網絡流量的yarn調度方法,包括:

s1、應用程式在向yarn資源管理器申請container時設置container的類型;

s2、集群中的每個節點採集節點上的實時網絡流量信息,並在心跳時向資源管理器匯報節點的實時網絡流量信息;

s3、資源管理器記錄每個節點上的實時網絡流量信息,並在收到節點匯報的更新值時,對記錄的相應節點的實時網絡流量信息進行更新,和/或在節點移除時,刪除記錄的移除節點的實時網絡流量信息;

s4、當前節點向資源管理器發送心跳信息時,若當前節點上存在可用資源,則根據記錄的各節點的實時網絡流量信息以及當前節點的實時網絡流量信息,選擇合適的應用程式的container分配資源。

優選地,步驟s2具體包括如下子步驟:

s2.1、對集群中的每個節點,使用nload命令將節點的實時網絡流量信息重定向到文件中;

s2.2、從文件中讀取對應的欄位,獲取節點的實時網絡流量信息;

s2.3、將節點的實時網絡流量信息賦給nodestatus的networkflow欄位;

s2.4、向資源管理器發送心跳信息匯報節點的實時網絡流量信息。

優選地,步驟s4具體包括如下子步驟:

s4.1、根據記錄的每個節點的實時網絡流量信息和當前節點的實時網絡流量信息確定當前節點需要的任務類型;

s4.2、若當前節點需要的任務類型是normal,則進入步驟s4.3,否則,依次選擇fifo中的應用程式,再按照container的優先級遍歷所選的應用程式中的所有container,判斷是否存在container的類型與當前節點需要的任務類型一致的container,若存在,則將當前節點的資源分配給與當前節點需要的任務類型一致的container,否則進入步驟s4.3;

s4.3、依次選擇fifo中的應用程式,再按照container的優先級遍歷所選的應用程式中的所有container,將當前節點的資源分配給優先級最高的container。

優選地,步驟s4.1具體包括如下子步驟:

s4.1.1、若集群中每個節點的實時網絡流量均小於預設閾值,則認為當前集群沒有網絡任務在執行,直接返回normal;

s4.1.2、計算出集群中所有節點的實時網絡流量總和;

s4.1.3、用所有節點的實時網絡流量總和除以集群中節點的數量得到網絡流量平均值;

s4.1.4、若當前節點的實時網絡流量大於網絡流量平均值,則確定當前節點需要的任務類型為map,否則確定當前節點需要的任務類型為reduce。

按照本發明的另一方面,提供了一種感知網絡流量的yarn調度系統,包括:

容器類型設置模塊,用於在應用程式向yarn資源管理器申請container時設置container的類型;

流量信息收集模塊,用於由集群中的每個節點採集節點上的實時網絡流量信息,並在心跳時向資源管理器匯報節點的實時網絡流量信息;

流量信息更新模塊,用於由資源管理器記錄每個節點上的實時網絡流量信息,並在收到節點匯報的更新值時,對記錄的相應節點的實時網絡流量信息進行更新,和/或在節點移除時,刪除記錄的移除節點的實時網絡流量信息;

資源調度模塊,用於在當前節點向資源管理器發送心跳信息時,若當前節點上存在可用資源,則根據記錄的各節點的實時網絡流量信息以及當前節點的實時網絡流量信息,選擇合適的應用程式的container分配資源。

優選地,所述流量信息收集模塊包括:

重定向模塊,用於對集群中的每個節點,使用nload命令將節點的實時網絡流量信息重定向到文件中;

流量信息獲取模塊,用於從文件中讀取對應的欄位,獲取節點的實時網絡流量信息,並將節點的實時網絡流量信息賦給nodestatus的networkflow欄位;

發送模塊,用於向資源管理器發送心跳信息匯報節點的實時網絡流量信息。

優選地,所述資源調度模塊包括:

確定模塊,用於根據記錄的每個節點的實時網絡流量信息和當前節點的實時網絡流量信息確定當前節點需要的任務類型;

第一調度模塊,用於在當前節點需要的任務類型不是normal時,依次選擇fifo中的應用程式,再按照container的優先級遍歷所選的應用程式中的所有container,判斷是否存在container的類型與當前節點需要的任務類型一致的container,若存在,則將當前節點的資源分配給與當前節點需要的任務類型一致的container;

第二調度模塊,用於在當前節點需要的任務類型是normal時,或者,在不存在container的類型與當前節點需要的任務類型一致的container時,依次選擇fifo中的應用程式,再按照container的優先級遍歷所選的應用程式中的所有container,將當前節點的資源分配給優先級最高的container。

優選地,所述確定模塊包括:

第一確定子模塊,用於在集群中每個節點的實時網絡流量均小於預設閾值時,認為當前集群沒有網絡任務在執行,直接返回normal;

第一計算模塊,用於計算出集群中所有節點的實時網絡流量總和;

第二計算模塊,用於用所有節點的實時網絡流量總和除以集群中節點的數量得到網絡流量平均值;

第二確定子模塊,用於在當前節點的實時網絡流量大於網絡流量平均值時,確定當前節點需要的任務類型為map,否則確定當前節點需要的任務類型為reduce。

總體而言,本發明方法與現有技術方案相比,能夠取得下列有益效果:

(1)每臺節點上的網絡資源利用的更加均勻,資源管理器能感知每臺節點上面的實時網絡流量值,根據這個值來分配任務,可以有效地避免集群節點網絡使用不均勻的情況。

(2)本發明提出的基於網絡流量的調度方法與yarn自帶的fifo,fair,capacity調度算法相比,在運行不同類型的mapreduce應用時,能使每個節點上面的網絡流量負載比較均勻,達到減少作業完成時間的目的,而任務的更快完成有利於更快地釋放container,提升了集群的資源利用率。

(3)雖然節點採集網絡流量以及根據節點需要的任務類型來遍歷應用程式選擇container會產生一定開銷,但這種開銷基本上可以忽略不計。

附圖說明

圖1為本發明實施例公開的一種感知網絡流量的yarn調度方法的整體架構圖;

圖2為本發明實施例公開的一種感知網絡流量的yarn調度方法的流程示意圖;

圖3為本發明實施例公開的一種檢測節點網絡流量並向資源管理器報告流量的方法流程示意圖;

圖4為本發明實施例公開的一種資源調度方法的流程示意圖;

圖5為本發明實施例公開的一種任務類型判斷方法的流程示意圖。

具體實施方式

為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發明,並不用於限定本發明。此外,下面所描述的本發明各個實施方式中所涉及到的技術特徵只要彼此之間未構成衝突就可以相互組合。

以下首先就本發明所涉及的技術術語進行解釋和說明:

mapreduce:由google提出的編程模型,用於大規模數據集的並行運算;

yarn:yetanotherresourcenegotiator,一種通用資源管理系統;

container:cpu和內存的封裝,應用程式申請資源的基本單位;

applicationmaster:管理一個在yarn內運行的應用程式的實例,applicationmaster負責向resourcemanager申請container,並向nodemanager通信啟動container;

mrappmaster:mapreduce應用的applicationmaster,yarn自帶的,編程人員無需再為mapreduce應用編寫applicationmaster;

resourcemanager:控制整個集群並管理應用程式向基礎計算資源的分配,管理整個集群中的container與應用程式;

nodemanager:集群中每個節點上的資源和任務管理器,監控container的生命周期,也會跟蹤節點健康狀況;

調度器:yarn為應用程式分配資源的方式,按照一定的方式選擇應用程式的container為它分配資源;

nload:一款輕量級的linux網絡流量監控工具,可以很方便地獲取節點上的當前網絡流量,平均網絡流量等信息。

以下結合具體實施例和附圖對本發明所提供的感知網絡流量的yarn調度方法做進一步說明。

本發明提供的感知網絡流量的yarn調度方法,其目的在於解決了yarn沒有對網絡進行管理,可能會使mapreduce應用的佔用網絡的任務堆積在同一個節點上,導致作業完成時間增長的問題;採用基於網絡流量的調度方案,可以實時感知到每個節點的網絡流量,在為節點分配任務時,根據節點的網絡負載,選擇合適的任務分配到這個節點上運行,使得每個節點上面的網絡負載比較均衡,最終減少mapreduce應用的完成時間,提升集群的資源利用率。

如圖1所示是本發明實施例提供的基於網絡流量的調度器的整體架構,調度方案修改了mrappmaster,nodemanager和resourcemanager。因為yarn上面可以運行多種計算框架,而不僅僅是mapreduce應用,於是無法對mapreduce應用的任務做出專門的調度。因此在mrappmaster端增加了任務類型(map和reduce),以便資源管理器能感知。yarn自身沒有對網絡進行管理,所以需要節點檢測網絡流量之後向資源管理器匯報。mrscheduler會根據集群的網絡流量信息對任務進行調度。

如圖2所示是本發明實施例公開的一種感知網絡流量的yarn調度方法的流程示意圖,在圖2所示的方法中,具體包括如下步驟:

s1、應用程式在向yarn資源管理器申請container時設置container的類型(例如map和reduce);

s2、集群中的每個節點採集節點上的實時網絡流量信息,並在心跳時向資源管理器匯報節點的實時網絡流量信息;

s3、資源管理器記錄每個節點上的實時網絡流量信息,並在收到節點匯報的更新值時,對記錄的相應節點的實時網絡流量信息進行更新,和/或在節點移除時,刪除記錄的移除節點的實時網絡流量信息;

例如,資源管理器維護一個hashmap來記錄每一個節點上的網絡流量信息,在收到nodemanager的心跳時更新該值,在收到節點移出集群的消息時刪除對應的記錄。

s4、當前節點向資源管理器發送心跳信息時,若當前節點上存在可用資源,則根據記錄的各節點的實時網絡流量信息以及當前節點的實時網絡流量信息,選擇合適的應用程式的container分配資源。

如圖3所示為上述步驟s2的具體實施方式流程示意圖,包括以下步驟:

s2.1、對集群中的每個節點,使用nload命令將節點的實時網絡流量信息重定向到文件中;

s2.2、從文件中讀取對應的欄位,獲取節點的實時網絡流量信息;

s2.3、將節點的實時網絡流量信息賦給nodestatus的networkflow欄位;

s2.4、向資源管理器發送心跳信息匯報節點的實時網絡流量信息。

如圖4所示為上述步驟s4的具體實施方式流程示意圖,包括以下步驟:

s4.1、根據記錄的每個節點的實時網絡流量信息和當前節點的實時網絡流量信息確定當前節點需要的任務類型;

s4.2、若當前節點需要的任務類型是normal,則進入步驟s4.3,否則,依次選擇fifo中的應用程式,再按照container的優先級遍歷所選的應用程式中的所有container,判斷是否存在container的類型與當前節點需要的任務類型一致的container,若存在,則將當前節點的資源分配給與當前節點需要的任務類型一致的container,否則進入步驟s4.3;

s4.3、依次選擇fifo中的應用程式,再按照container的優先級遍歷所選的應用程式中的所有container,將當前節點的資源分配給優先級最高的container。

如圖5所示為上述步驟s4.1的具體實施方式流程示意圖,包括以下步驟:

s4.1.1、若集群中每個節點的實時網絡流量均小於預設閾值,則認為當前集群沒有網絡任務在執行,直接返回normal;其中,預設閾值可以根據實際需要進行確定。

s4.1.2、計算出集群中所有節點的實時網絡流量總和;

s4.1.3、用所有節點的實時網絡流量總和除以集群中節點的數量得到網絡流量平均值;

s4.1.4、若當前節點的實時網絡流量大於網絡流量平均值,則確定當前節點需要的任務類型為map,否則確定當前節點需要的任務類型為reduce。

本領域的技術人員容易理解,以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護範圍之內。

同类文章

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

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有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-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀