背景知識:
很多互聯網公司會有各種類型的工作任務,比如對外提供各種服務,內部的挖掘與數據管理系統。
即使內部數據系統也可能需要多種不同類型的計算系統:適應實時計算的挖掘系統。適合交互查詢的系統
或者典型的批處理任務,面對多種各具特性的計算系統與框架,比較傳統的資源管理方式采用的是靜態資源划分方法。
靜態划分優點:簡單,固定的硬件資源給固定的計算框架使用,各個框架各行其是,互補干擾。
缺點:整體資源利用率不高,經常出現集群計算系統資源不足
所以需要動態的集群資源管理與調度,這方面的研究呢處於摸索期,發展趨勢很不錯喲!
話說掌握資源並分配資源的感覺很不錯的,現實生活中我們很難實現的東東,可以在計算機當中去實現哦。
對比一下動態和靜態:
第一:動態會根據任務即時需要分配資源,不會出現資源閑置且不可用,也不會出現任務忙且不可得資源的尷尬局面。總之
增加資源利用率,降低硬件成本。
第二:增加數據共享能力,共用的資源存儲一份就行啦,
第三:說白了就是支持多類型計算框架和多版本計算框架,使用資源管理與調度平台可以實現兩者平滑切換,給運營帶來便利。
資源管理抽象模型:
資源管理與調度系統:YARN、Mesos、Corona、Quincy,從上述系統抽象兩個模型:1,資源管理與調度的概念模型。2,通用架構
目的:通過 一定策略把資源分配給用戶提交到系統里的各種任務。
資源:內存、cpu、網絡資源、磁盤I/O
概念模型聚焦三要素:資源組織模型、調度策略、任務組織模型
1,資源組織模型:組織起來方便分配,像以前吃大鍋飯一樣,有一些組織的方式如“all resource->group->pool”三級隊列,或者平級多隊列或者但隊列了等等吧。
2,調度:熟知的FIFO、公平調度、能力調度、延遲調度等等吧,說白了就是按照什么方式分配資源。以前大躍進期間是按“分兒”分配,勞動多所得“分兒”就多。
3,任務組織:job分配呀比如全局隊列、機架對壘、節點隊列等。說白了就是以前大躍進期間如何把活兒給組織起來,放牛的,耕地的,播種的,拔草的等等類似吧
通用架構:
解釋一下啊:1,每台機器都有節點管理器,負責收集它所在機器的資源使用情況,分配的任務放到不同容器執行,彼此隔離開,避免job彼此干擾。
相當於大躍進期間的組長。每一個胡同一個組長,由他負責給村長匯報任務,汗!在這里它要給資源收集器匯報任務。這個收集器在把
相關的信息反應給資源池,資源池列出目前可用的資源
2,通用調度器構成:資源收集起、資源調度策略,資源池,工作隊列
3,調度策略:FIFO、公平調度、能力調度等,這家伙相當於大躍進期間村委書記,你家的牛羊糧食咋分,如何分,他說了算,汗!
在這里系統應用者可根據具體情況設定符合業務狀況的調度策略,當用戶新提交作業時,其進入工作隊列,等着分配使其可啟動的資源。
總結:資源管理與調度說白了就是資源管理與分配,在現實生活中就是按需分配,把資源盡可能的分配到需要的job手中,
無論是人還是計算機,采用何種分配策略,決定了你這個系統的性能問題,生活中我們常說“不患寡而患不均”,在計算機中資源管理與調度是根據具體
場景而設定的,其實終極目的都是為了使資源分配的更加合理!依此為導向來決定分配策略會更加合理。