這是CDP中Yarn使用系列中的一篇,之前的文章請參考使用YARN Web UI和CLI>、CDP 中配置Yarn的安全性>和CDP的Yarn資源排程與管理>。
YARN Queue Manager 是 Apache Hadoop YARN Capacity Scheduler 的佇列管理圖形使用者介面。您可以使用 YARN 佇列管理器 UI 來管理叢集容量,使用佇列來平衡來自不同使用者的多個應用程式的資源需求。使用 YARN 佇列管理器 UI,您可以設定排程程式級別屬性和佇列級別屬性。
您可以使用 YARN 佇列管理器 UI 檢視、排序、搜尋和過濾佇列。佇列管理器儲存以前更改的歷史記錄,並提供在“
概覽”
和“
排程程式配置”
選項卡中檢視每個版本更改的功能。以前的版本將處於只讀模式,您必須選擇最新版本才能進行更改。
YARN 中排程的基本單位是佇列。每個佇列的容量指定可用於提交到佇列的應用程式的叢集資源的百分比。容量排程器佇列可以按層次結構設定,以反映使用叢集資源的各種組織、組和使用者所需的資料庫結構、資源要求和訪問限制。
例如,假設一家公司有三個組織:工程、支援和營銷。工程組織有兩個子團隊:開發和質量保證。支援組織有兩個子團隊:培訓和服務。最後,營銷組織分為銷售和廣告。下圖顯示了此示例的佇列層次結構:
每個子佇列都繫結到其父佇列,頂級的“支援”、“工程”和“營銷”佇列將繫結到“根”佇列。
先決條件
如果在安裝集群后將YARN Queue Manager服務新增到叢集中,則必須 在 Yarn
Configuration
選項卡中配置YARN Queue Manager依賴項。
在 Cloudera Manager 中,單擊
叢集 > YARN
服務。
單擊
配置
選項卡。
搜尋隊列管理器服務。
選擇
YARN 佇列管理器
複選框。
單擊
儲存更改
。
重新啟動YARN和YARN 佇列管理器服務。
使用 YARN 佇列管理器 UI 新增佇列
您可以從 Yarn 佇列管理器 UI向名為
root
的預定義佇列新增佇列。容量排程程式有一個名為 root 的預定義佇列。系統中的所有佇列都是根佇列的子佇列。每個子佇列都繫結到其父佇列,但除非另有說明,否則子佇列不會直接從父佇列繼承屬性。
在 Cloudera Manager 中,選擇叢集 > YARN 佇列管理器 UI 服務。
單擊根上的三個垂直點,然後選擇“新增子佇列”選項。
根據相對或絕對分配模式輸入資訊。
絕對分配模式:在“記憶體”選項卡中輸入以 MiB 為單位的佇列名稱和記憶體單位。在vCores選項卡中輸入核心數。
相對分配模式:輸入佇列名稱、已配置容量和佇列的最大容量值。
權重分配模式:在為佇列配置的權重中輸入佇列名稱和資源所佔的比例。
點選儲存。
您可以按照相同的步驟繼續新增更多父佇列和子佇列。
使用佇列配置叢集容量
您可以使用佇列來管理叢集容量,以平衡來自不同使用者的多個應用程式的資源需求。
您可以使用容量排程程式透過 FIFO(先進先出)佇列共享叢集資源。
您可以透過使用相對模式指定容量百分比或使用絕對模式指定 vCore 和記憶體的實際單位或總容量的分數來配置佇列。如果您要升級叢集,權重模式是預設模式。如果您是全新安裝和配置叢集,則相對模式是預設模式。您可以將分配模式更改為絕對模式。
如果叢集中的節點有可用容量,您可以將應用程式提交到佇列層次結構中多個級別的不同佇列。由於總叢集容量可能會有所不同,因此容量配置值使用百分比、單位或分數表示。
示例 – 使用相對模式配置容量
您可以指定容量屬性以將叢集容量的浮點百分比值分配給佇列。以下配置以 6:1:3 的比例(60%、10% 和 30%)劃分“工程”、“支援”和“營銷”組織之間的叢集資源。
要根據上述示例指定容量屬性,請執行以下操作:
在 Cloudera Manager 中,選擇叢集 > YARN 佇列管理器 UI 服務。圖形佇列層次結構顯示在
概覽
選項卡中。
單擊根上的三個垂直點,然後選擇“編輯子佇列”選項。
輸入配置的容量的“工程” 為60,“支援”為10和“營銷”為30。
點選儲存。
示例 – 使用絕對模式配置容量
您可以指定以 MiB 為單位的記憶體容量和佇列的核心數。如果總記憶體單位為 16384 MiB 和 16 個核心,並且“工程”、“支援”和“營銷”組織之間的叢集資源分配如下:
組織
記憶體
Core數
要根據上述示例指定容量屬性,請執行以下操作:
在 Cloudera Manager 中,選擇叢集 > YARN 佇列管理器 UI 服務。圖形佇列層次結構顯示在 概覽選項卡中。
單擊根上的三個垂直點,然後選擇“編輯子佇列”選項。
配置記憶體:輸入“工程”為9830 、“支援”為1638、“營銷”為4916。
配置vCore:輸入“工程”為10 、“支援”為4和“營銷”為2
點選儲存。
示例 – 使用權重模式配置容量
您可以以總資源的分數來指定容量。根據佇列的權重與父項下配置的權重總和的關係來劃分資源。以下配置按總資源的 6:1:3(6/10、1/10 和 3/10)比例劃分“工程”、“支援”和“營銷”組織之間的叢集資源。
要根據上述示例指定容量屬性,請執行以下操作:
在 Cloudera Manager 中,選擇叢集 > YARN 佇列管理器 UI 服務。圖形佇列層次結構顯示在
概覽
選項卡中。
單擊根上的三個垂直點,然後選擇“編輯子佇列”選項。
輸入配置的權重: “工程”為60, “支援”為10和 “營銷”為30。
點選儲存。
改變資源分配方式
您可以透過在 Yarn 佇列管理器 UI 中編輯佇列屬性來從根佇列更改資源分配模式。在 相對的資源分配模式是預設的分配方式。您可以使用絕對分配模式指定 vCore 和記憶體資源的實際單位,或使用相對分配模式指定總資源的百分比。
在 Cloudera Manager 中,選擇叢集 > YARN 佇列管理器 UI 服務。圖形佇列層次結構顯示在概覽選項卡中。
單擊根上的三個垂直點,然後選擇檢視/編輯佇列屬性選項。
在“佇列屬性”對話方塊中,選擇資源分配方式。
注意
如果您有處於相對模式的現有受管佇列,則不允許轉換為權重模式。在繼續從“相對”到“權重”模式的轉換之前,您必須刪除受管父佇列。在權重模式下,只能將父佇列轉換為託管父佇列。
在此版本中,由於已知問題,您無法將分配模式從權重模式更改為絕對模式或從絕對模式更改為權重模式。
點選儲存。
輸入yes在交換機配置模式對話方塊,然後單擊確定。佇列管理器計算並更新所有現有佇列的資源分配。如果需要,您可以進一步 修改資源分配。
點選儲存。
開始和停止佇列
YARN 中的佇列可以處於兩種狀態:RUNNING 或 STOPPED。RUNNING 狀態表示佇列可以接受應用程式提交,而 STOPPED 佇列不接受應用程式提交。任何已配置佇列的預設狀態都是 RUNNING。
在容量排程器中,可以停止父佇列和葉佇列。對於要在任何葉佇列中接受的應用程式,層次結構中一直到根佇列的所有佇列都必須執行。這意味著如果父佇列停止,則該層次結構中的所有後代佇列都處於非活動狀態,即使它們自己的狀態是 RUNNING。
要停止佇列:
在 Cloudera Manager 中,選擇
叢集 > YARN 佇列管理器 UI
服務。圖形佇列層次結構顯示在
概覽
選項卡中。
單擊佇列上的三個垂直點並選擇
停止佇列
。
系統將提示您進行確認。單擊
確定
停止佇列。
要啟動佇列:
在 Cloudera Manager 中,選擇
叢集 > YARN 佇列管理器 UI
服務。圖形佇列層次結構顯示在
概覽
選項卡中。
單擊佇列上的三個垂直點並選擇
Start Queue
。
系統將提示您進行確認。單擊“
確定”
以啟動佇列。
管理員可以出於多種原因使用停止和排空佇列中的應用程式的功能,例如在停用佇列並將其使用者遷移到其他佇列時。管理員可以在執行時停止佇列,這樣噹噹前的應用程式執行完成時,不會接受新的應用程式。現有應用程式可以繼續執行,直到它們完成執行,因此佇列可以優雅地排空,而不會對終端使用者產生任何影響。
刪除佇列
您必須先停止佇列,然後才能刪除佇列。如果層次結構中的所有佇列都停止,您可以刪除單個佇列以及父佇列及其子佇列。
在Capacity Scheduler 中,父佇列、子佇列和根佇列都可以停止。對於要在任何子佇列中接受的應用程式,層次結構中一直到根佇列的所有佇列都必須執行。這意味著如果父佇列停止,則該層次結構中的所有後代佇列都處於非活動狀態,即使它們自己的狀態是 RUNNING。
注意
如果佇列與一個或多個分割槽相關聯,則在刪除佇列之前,您必須首先使用該佇列的所有分割槽的“編輯子佇列”將分割槽容量設定為零。
在 Cloudera Manager 中,選擇叢集 > YARN 佇列管理器 UI 服務。圖形佇列層次結構顯示在
概覽
選項卡中。
單擊佇列上的三個垂直點並選擇
刪除佇列
。
您可以使用
刪除佇列及其子佇列
選項來刪除父佇列及其子佇列。
系統將提示您進行確認。單擊確定停止佇列。
注意
與放置規則關聯的佇列無法刪除,直到其關聯的放置規則被刪除。