YARN(Yet Another Resource Negotiator)是 Hadoop 生態系統中的資源調度器,主要用於資源管理和作業調度。YARN 自身具備隊列管理功能,通過對 YARN 資源隊列進行配置和管理,實現集群資源的分配,以滿足不同應用和用戶的需求。YARN 的引入為集群在利用率、資 ...
YARN(Yet Another Resource Negotiator)是 Hadoop 生態系統中的資源調度器,主要用於資源管理和作業調度。YARN 自身具備隊列管理功能,通過對 YARN 資源隊列進行配置和管理,實現集群資源的分配,以滿足不同應用和用戶的需求。YARN 的引入為集群在利用率、資源統一管理和數據共用等方面帶來了巨大好處。
在大數據環境下,企業通常會有多個應用程式同時運行,這些應用程式可能具有不同的資源需求和優先順序。為了合理分配和管理資源,避免資源爭奪和衝突,需要對資源進行劃分和調度。
本文將為大家介紹各類資源劃分和隊列管理方式,以及 EasyMR 新上線的 YARN 的隊列管理功能,如何通過可視化界面管理,給廣大用戶帶來更高效和便捷的隊列管理體驗。
資源劃分方式
在大數據領域中,常見的資源劃分方式通常有以下幾種:
按照應用程式的類型或特性進行分類
例如,可以將 CPU 密集型的應用程式放置在一個隊列中,將記憶體密集型的應用程式放置在另一個隊列中。通過這種方式,可以確保不同類型的應用程式獲得各自所需的資源,並避免資源浪費和不均衡的情況發生。
按照應用程式的優先順序進行分類
對於一些重要的任務或緊急任務,可以為它們分配更高的資源配額和優先順序,以保證它們能夠得到及時響應和優先處理。而對於一些次要的任務或低優先順序的任務,可以為它們分配較低的資源配額,以確保其他重要任務的執行效率和優先順序。
按照部門或團隊的需求進行分類
不同部門可能對資源有不同的需求,通過為不同部門分配獨立的資源隊列,可以確保每個部門能夠獨立管理和分配自己的資源,不會相互干擾或影響。
雖然 YARN 自身具備隊列管理功能,但在實際使用中,YARN 只能通過配置文件進行資源隊列的管理,這種方式相對繁瑣且需要一定的技術知識。
CDH & HDP
業界首選的基礎開源數據平臺要數基於 Hadoop 分散式技術的 CDH 和 HDP。
CDH(Cloudear Manager)
● Fair Share 策略
CDH 的 Cloudear Manager 採用 Fair Share 策略,每個用戶或組織的權重和優先順序需要事先確定,需要管理者對系統的使用情況有較好的瞭解。如果這些設置不合理,可能會導致某些用戶或組織長期不能獲得足夠的資源來執行任務。
● 調度效率影響
當有多個任務或作業同時提交時, Fair Share 的演算法需要進行複雜的計算,導致調度效率下降。
HDP(Ambari)
● 管理複雜性
Ambari 採用可視化拖拽進行資源調整,操作簡單。但是由於 Yarn 資源隊列必須保證同一級隊列資源之和等於100%,因此單一隊列資源調整,必須調整其他隊列資源保證隊列資源之和等於100%,管理複雜度比較高。
● 資源配平
為保證同級隊列資源之和等於100%,創建或者刪除隊列時,需要調整其他隊列資源保證隊列資源。
EasyMR 的 Yarn 資源隊列管理功能
基於上述優缺點,為了改善隊列管理體驗,提供一個更直觀、更詳細的信息展示和簡易明瞭的操作界面進行隊列資源管理,EasyMR 上線了 Yarn 的隊列管理功能進行可視化界面管理,提高其靈活性、可用性和可擴展性。
EasyMR 的 Yarn 資源隊列管理特點
● 容量策略
基於最大、最小資源容量策略,限制隊列的資源使用,用戶或部門可以根據自己業務需求創建屬於自己的專屬資源隊列。
● 隊列獨立
當調整隊列資源大小或者創建刪除隊列時,無需調整其他隊列資源大小,僅需保證同一父隊列下所有子隊列資源小於等於100%即可。
● 用戶對接
支持對接 LDAP、OAuth 用戶體系,通過對 Yarn 資源隊列-葉子隊列綁定用戶、用戶組,實現了基於用戶和用戶組的訪問控制和資源分配,保障資源安全。
葉子隊列:是指不能再分配子隊列的隊列,它可以直接用來分配資源給應用程式,在葉子隊列中,可以直接運行應用程式或者將它們放置在預設分配隊列中進行調度。
非葉子隊列:可以再分配子隊列,以進一步劃分資源併進行資源管理,不支持應用程式和任務的提交。例如,可以將 CPU 密集型應用程式和記憶體密集型應用程式分別放置在不同的子隊列中,併為它們分配不同的資源配額和優先順序。
父隊列:通常是一個非葉子隊列,它包含多個子隊列,並控制著這些子隊列的資源分配和優先順序等屬性。例如,一個父隊列可以包含多個子隊列“memory”、“cpu”等,通過為不同的子隊列設置不同的資源配額和優先順序,可以更好地管理集群中的資源。
子隊列:是父隊列的一部分,它們繼承了父隊列的所有屬性,並具有自己的資源配額和優先順序等屬性。在子隊列中可以運行應用程式不支持再次劃分子隊列。
EasyMR 如何創建 Yarn 資源隊列,在之前的文章《大數據計算引擎 EasyMR 如何簡單高效管理 Yarn 資源隊列》中進行了詳細的介紹,請點擊閱讀。
未來,EasyMR 會持續優化 Yarn 資源隊列管理,完善資源隊列的安全審計與隊列監控,通過將資源隊列與需求背景進行對應,制定更優資源分配策略,以更好地滿足企業在大數據環境下的資源管理和調度需求。
《數棧產品白皮書》:https://www.dtstack.com/resources/1004?src=szsm
《數據治理行業實踐白皮書》下載地址:https://www.dtstack.com/resources/1001?src=szsm
想瞭解或咨詢更多有關袋鼠雲大數據產品、行業解決方案、客戶案例的朋友,瀏覽袋鼠雲官網:https://www.dtstack.com/?src=szbky
同時,歡迎對大數據開源項目有興趣的同學加入「袋鼠雲開源框架釘釘技術qun」,交流最新開源技術信息,qun號碼:30537511,項目地址:https://github.com/DTStack