業界方案 Yarn的業界解決方案和未來方向

2022-01-10 02:09:13 字數 2418 閱讀 5309

目錄0x02 分析

2.2 關鍵定製

2.3 具體定製

0x03 yarn的未來規劃

yarn是集群資源管理層,分成了三個模組:

resourcemanager 管理整個集群的資源;

nodemanager 管理整個機器資源情況;

yarn 在快手的應用實踐與技術演進之路

yarn 在位元組跳動的優化與實踐

可以看出來兩個公司應用領域都差不多:離線作業/流式作業/模型訓練三大場景。

快手主要是:根據不同領域做不同定製。

位元組跳動是:沒有針對領域做不同定製(當然也可能是沒有披露)。

2.1.1 yarn在快手的應用特點

yarn上面服務了一些經典的離線計算,像hivesql,最終回變成乙個mr/spark作業或者pesto查詢在yarn上執行。

對於流式的實時資料處理需求,我們上層有乙個青藤平台來託管flink在yarn上執行。

對於模型訓練的場景,我們是用xlearning作為排程器,排程tensorflow,xgboost,mpi等訓練學習引擎。

基於spark和xlearning,我們打造了亞瑟機器學習平台,可以把資料處理流程和一些模型的訓練、**流程做乙個打通,方便使用者使用。

2.1.2 位元組跳動 yarn 應用特點
位元組跳動的 yarn 是在 16 年從社群當時最新的 2.6.0 版本中 fork 出來的,主要承載著公司內的離線作業/流式作業/模型訓練三大場景。由於公司內的 yarn 服務規模巨大、場景複雜,遇到了各種問題,在社群版本沒有提供解決方案之前,內部研發同學定製了許多內容來解決具體問題,經過 4 年來上千次的修改,公司內的版本已經跟社群的版本相差較大。

可以看到:穩定性,呼叫效能和利用率是兩個公司都注重的。

此外快手提到了 「小io優化」。位元組跳動提到了「異地多活」。

2.2.1 yarn在快手的應用特點

對yarn的一些改動,主要分成四個方面:

(1)集群穩定性方面的優化。

(2)對yarn的搶占機制做了優化。

(3)yarn的排程效能提公升。

(4)計算集群小io優化。

2.2.2 位元組跳動 yarn 應用特點
這些關鍵定製主要包括四個方面:

下面把兩個公司具體優化點整合起來介紹。

2.3.1 事件處理

yarn中幾個模組之間有大量的事件傳遞和處理,其中勢必有缺陷和可優化之處,這就是業界優化之處,比如優化冗餘,解耦合。具體體現在速度提公升,對io操作優化,集群啟動上。

2.3.2 排程方面

yarn有三種排程器,都不能滿足兩個公司的需求,兩個公司都對排程做了優化,或者乾脆重新寫了排程器。

為了提高排程的擴充套件性,我們重寫排程邏輯,開發了kwaischeduler。

處理很多的小io問題。很多的小io,導致整個集群磁碟util非常高,但是磁碟讀寫速度非常慢。針對這個問題,我們對mr的shuffle過程做乙個cache。在shuffle過程中,當乙個請求來的時候,我們分析一下這次shuffle過程有沒有可能產生比較多小io,可以按需把shuffle資料放到cache裡,只需要一次大的io把資料搬到cache裡面,後面的shuffle請求可以直接從cache裡面讀,消滅了後面多次小io,通過這個我們優化,提公升了整個的集群io效能。

2.3.3 資源方面

從現實看,資源的隔離和利用都有缺陷,所以兩個公司都做了細化、優化。

2.3.4 穩定性

這點和下面一點屬於穩定性方面。

container 分級與驅逐

非受控 container 的清理機制

2.3.5 單點問題
本部分和下一部分都是為了特殊場景做改造。

為了彌補原生 yarn 在低延遲和全域性視角上的缺陷,我們開發了乙個全新的排程器 gang scheduler。

2.3.7 訓練場景

2.3.8 單集群規模
綜合兩個公司對具體未來規劃,總結如下,基本能看出來主要思路就是:提高利用率,豐富功能,擴大應用領域。

我們現在單個yarn集群規模在國內是top級的,但是單集群畢竟是容量有限,我們後面會考慮多集群建設的方案,社群的federation方案在跨idc方面有些問題,如何在業務透明的前提下,建設跨idc集群有非常多問題需要解決。

mysql 解決方案 Mysql解決方案

mysql解決方案 一 centos7安裝mysql5.7 wget rpm uvh mysql80 community release el7 3.noarch.rpm yum repolist all grep mysql 發現預設mysql8.0是預設安裝的,然而我們要安裝的是mysql5.7...

OSSIM解決方案

大多數主流安全產品針對的是計算機單一安全缺陷,他們更多的是提供某一單獨的安全保護功能。目前安全領域內還沒有一套相對完整系統安全解決方案,而且由於主流商業安全軟體的閉源特性,讓我們對其自身的安全特性也不能夠完全信服。隨著軟體開源趨勢的不斷推進,現在出現了很多甚至可以說效能毫不遜色於任何商業軟體的安全工...

android OOM解決方案

解決oom的常用方案 記憶體限制是android對應用的乙個系統級限制,作為應用層開發人員,沒有辦法徹底去消滅這個限制,但是可以通過一些手段去合理使用記憶體,從而規避這個問題。以下是個人總結的一些常用方法 1 快取影象到記憶體,採用軟引用快取到記憶體,而不是在每次使用的時候都從新載入到記憶體 2 調...