Koordinator 支援 K8s 和 YARN 混搭,小紅書分享離線混搭實踐

Mondo 科技 更新 2024-01-30

作者:索增曾(小紅書)、宋澤輝(小紅書)、張作偉(阿里雲)。

Koordinator 是基於阿里巴巴在容器排程領域多年經驗孵化的開源專案,目前在 K8S 生態中支援離線混合,但在 K8S 生態之外,仍有相當數量的使用者會在 Apache Hadoop Yarn 上執行大資料任務這種型別的資源管理系統。 雖然目前部分算力引擎提供了 K8S Operator 將任務連線到 K8S 生態,但不可否認的是,YARN 生態仍然保持著一定程度的活躍度,乙個典型的例子就是包括阿里雲在內的一系列主流雲廠商,仍然提供類似的 e-mapreduce該產品的受歡迎程度體現在使用者可以將大資料作業提交到 yarn 執行中。

小紅書是 Koordinator 社群的活躍成員,為了進一步豐富 Koordinator 支援的線下混合場景,社群聯合阿里雲、小紅書、螞蟻金服的開發者推出了 Hadoop Yarn 和 K8S 混合專案,支援向 Hadoop Yarn 提供超額認購的批量資源,進一步提公升集群資源的效率, 該專案已在小紅書生產環境中正式投入使用。

一般原則

在此之前,行業內部已經有一些關於k8s和紗線混用的做法,但由於落地場景的原因,大部分實現都對紗線系統本身做了相當侵入性的改造,在運維迭代方面對普通使用者並不友好。 為了讓更多的使用者在社群中享受開源技術的好處,Koordinator 在設計時將遵循以下原則。

離線作業的提交條目與 yarn 相同。 基於開源版本的 Hadoop 紗線,原則上不對紗線進行侵入式改造。 Koordinator 提供了混合資源,k8s pod 和 yarn 任務都可以使用,不同型別的離線應用可以共存於同乙個節點。 獨立 QoS 策略由 koordlet 管理,並與 Yarn Tasks 的執行時相容。 方案設計

ResourceManager 和 NodeManger 是 YARN 的核心元件,ResourceManager 負責控制端的任務接收和資源排程,NodeManager 負責任務生命週期管理。 在 yarn 和 k8s 混合部分場景中,RM 仍將作為 yarn 集群的核心元件獨立部署,nm 將以容器的形式部署。

Koordinator 新增了 koord-yarn-operator 模組,負責將批處理資源同步到 yarn rm。 為了更精細地管理資源,yarn 任務將獨立於 nm 的資源管理,nm 在部署時只需要自費申請批量混合資源即可。 yarn 任務的資源使用通過 cgroups(Linux ContainerExecutor 模式)進行管理,cgroup 路徑在 besteffort pod QoS 下,保證可以像其他 k8s pod 一樣在 besteffort group 下進行管理。

Koodlet 目前在單機上支援一系列 QoS 策略,這些策略也需要針對 yarn 場景進行適配。 對於資源隔離引數,如組標識、記憶體 QoS、L3 快取隔離等,koordlet 會根據設計的 cgroup 層次結構進行適配。 對於驅逐、抑制等動態策略,Koordlet 會新增乙個 sidecar 模組 koord-yarn-copilot,用於連線 yarn 場景中的各種資料和操作,包括 yarn 任務元資訊收集、資源指標收集、任務驅逐操作等,所有 QoS 策略仍將保留在 koordlet 中,koordlet 內部的相關模組會以外掛程式的形式連線 koord-yarn-copilot 介面。 同時,koord-yarn-copilot 的介面設計將保留一定程度的擴充套件性,未來可用於與其他資源框架的對接。

有關紗線和 k8s 混紡設計的更多詳細資訊,請參閱社群設計文件

業務背景

在降本增效的背景下,小紅書內部商業化和社群搜尋服務中存在大量演算法Spark任務,由於離線集群資源短缺,無法及時處理,且**集群在非高峰時段資源利用率較低另一方面,很大一部分 Spark 任務資源排程仍然在 yarn 排程器上執行基於這種情況,結合小紅書現有的離線混搭能力,通過打通 K8S 排程器和 yarn 排程器之間的資源檢視,並在單機側支援 Yarn Task 粒度的逐出和 QoS 保證策略,最終實現了保持離線服務提交入口和使用習慣不做任何變化的前提, 使大量Spark任務能夠在空閒時間資源上穩定執行,有效提高集群資源利用率,同時大大緩解業務資源壓力,有效降低離線業務資源使用成本。

在小紅書的實踐經驗中,有以下幾個關鍵技術點值得分享:

針對本地洗牌帶來的磁碟效能瓶頸,我們採用RemoteshuffleService技術,降低本地磁碟IO開銷,提公升IO效能,有效提高離線業務運營的效率和穩定性,另一方面有效避免IO層面的離線干擾。 除了大資料Spark場景外,在保障策略方面,還有轉碼、離線推理、訓練等業務場景,對保障策略進行了細粒度的優先順序排序和策略優化,如離線資源超報(壓縮資源、提高利用率)、單節點衝突處理、資源衝突等離線差異化QoS保障策略,或者滿足低優先順序逐出轉碼的離線資源要求。結合上述優化方法,最終實現了Spark任務的穩定高效執行和資源的充分利用。 落地福利

截至目前,小紅書的線下混合方案已大規模落地,並取得了以下經營成果:

覆蓋數萬**集群節點,為離線服務提供數十萬核計算資源,離線任務逐出率小於1%,混合操作後混合部分的CPU利用率基本不受影響,平均提公升8%和10%,部分平均CPU利用率可達45%以上, 大大提高了集群資源的使用效率。

K8s 和 Yarn 混合功能現已全面展開,Koordinator 團隊目前正在努力完成一系列發布前的準備工作,敬請期待!

如果你也有興趣參與到專案的合作共建中來,或者對K8S&紗線混紡事業部感興趣,歡迎你加入社群專屬論壇請在下方留言,我們會盡快與您聯絡。 參考訊息格式:

聯絡人 (gihub-id e-mail): , eg. @koordinator-dev

您受僱於參與公司 學校組織名稱: eg. koordinator community

社群參與意向: eg.我希望能夠參與研發學習大資料和雲原生混合部門,在生產環境中實現K8S&YARN混合部門功能等。

是的"K8S&紗線混合部分"期待什麼:

相關鏈結:1] apache hadoop yarn

2] e-mapreduce

3] 設計文件。

4] 專題討論區。

點選下面的鏈結,檢視Koordinator的詳細介紹和使用方法!

相關問題答案

    現在掌握竅門還為時不晚!新款“起亞 K8”是世界上第一款,足夠漂亮,配備 3 5 V6 發動機

    年洛杉磯車展揭開了 南韓起亞K 的神秘面紗。這款新車型以其非常後現代的外觀而備受矚目,儘管南韓汽車在全球市場上的表現並不起眼,但從設計的角度來看,它們總是引人注目,通常可以稱為 時尚先鋒 和往常一樣,這一代起亞K在設計上絕對不遜色於賓士 奧迪等系列。作為大型旗艦車型,整體設計保持了前衛的風格。全新設...

    支援800V超級充電,搭配45英吋8K螢幕,Galaxy E8預售價18 80,000 競爭力如何?

    距離吉利Galaxy E的發布越來越近了。新車預售價格已經公布,不知道大家是不是很興奮?新車將推出五種配置,目前預售價格為,元起。作為吉利銀河品牌旗下的旗艦轎車,也是該品牌首款純電E系車型,銀河E帶來了什麼?後續市場競爭力如何?讓我們在這篇文章中談談它。新車外觀如何?其實吉利Galaxy E的外觀很...

    海信壁畫TVR8K 65R8K(海信65R8K)引數,畫質和音質介紹

    今天小編就給大家詳細分析一下海信壁畫電視Rk RK 寸壁畫一體機設計電視的效能 畫質 音質 引數和價效比,幫助大家全面了解這款產品。.海信RK外觀設計。海信RK電視採用一體式壁畫設計,讓電視更貼近牆面,整機薄至。公釐,實現家用電器一體化美學。同時,電視還採用了鋁合金框架和底座,提公升了整體質感。第二...

    鏡面不銹鋼管6K 8K 10K介紹

    當我們談論裝飾管時,我們通常會提到乙個概念 鏡面不銹鋼管。在裝飾管領域,鏡面不銹鋼管是指對管材表面進行特殊處理,通過各種工藝進行拋光,以達到鏡面質量。鏡面不銹鋼管的表面等級可分為k k k三個等級,在市場上通常稱為粗拋光 半精拋光 精拋光。k 值是映象效應的度量。k 用於普通鏡面效果,k 用於精細的...

    4k和8k有什麼區別

    K和K是指顯示裝置的解像度,它表示螢幕上的畫素數。以下是它們之間的區別 解像度 K顯示器的解像度為 畫素,而K顯示器的解像度為 畫素。因此,k的解像度是k的倍。影象細節 由於 K 具有更高的畫素密度,因此它能夠呈現更多細節和更清晰的影象。在相同尺寸的螢幕上,K 顯示器能夠提供更多畫素,使影象更清晰 ...