1. 程式人生 > >Hadoop 3.0: YARN Resource自定義資源配置說明

Hadoop 3.0: YARN Resource自定義資源配置說明

 

yarn支援可擴充套件資源型別 所有節點、應用程式、佇列,預設情況下Yarn使用 CPU和記憶體。資源定義可以擴充套件為任意的“countable”資源。一個countable 資源,container執行的時候,將會被暫用,完畢後將會釋放。

問題導讀

  1. yarn預設情況下使用哪些資源?
  2. Yarn如何實現擴充套件自定義資源?
  3. 自定義資源,可以在哪個配置檔案中配置?
  4. 哪些配置可以在yarn-site.xml檔案或則 resource-types.xml檔案配置?
  5. yarn有哪三種Containers?
  6. 三種Container如何配置請求的CPU,memory等值?

1.概述

yarn支援可擴充套件資源型別.所有節點、應用程式、佇列,預設情況下Yarn使用 CPU和記憶體。資源定義可以擴充套件為任意的“countable”資源。一個countable 資源,container執行的時候,將會被暫用,完畢後將會釋放。CPU 和(記憶體)memory都是 countable 資源。其它例子:包括GPU 資源和軟體licenses。

Hadoop 3.0: YARN Resource自定義資源配置說明

2.配置

支援下面屬性,詳細如下:

resource-types.xml

\

node--resources.xml

\

3.yarn資源模型

Resource Manager

resource manager【資源管理器】是tracke叢集中哪些資源的最終仲裁者。它從XML配置檔案載入定義資源。。例如定義新增加的CPU 和memory,下面屬性應該被配置

\

有效的資源名稱必須以字母開頭,並且只能包含字母,數字和“。”,“_”或“ - ”中的任何一個。有效的資源名稱也可以選擇在名稱空間後加一個斜槓。一個有效的名字空間由句點分隔的字母,數字和破折號組成。 例如,以下是有效的資源名稱:

  • myresource
  • my_resource
  • My-Resource01
  • com.acme/myresource

以下是無效資源名的示例:

  • 10myresource【字母開頭】
  • my resource【含有空格】
  • com/acme/myresource【沒有名稱空間】
  • $NS/myresource【字母開頭】
  • -none-/myresource【字母開頭】

以上個人標註上了錯誤的比較明顯的原因。大家也可以找找其它方面的錯誤。

對於定義的每個新的資源型別,可以新增可選的單元屬性來設定資源型別的預設單位。 有效值是:

\

屬性必須命名為yarn.resource-types..units。每個定義的資源也可以具有可選的最小和最大屬性。屬性必須命名為: yarn.resource-types..minimum 和yarn.resource-types..maximum.

yarn.resource-types屬性和任何的unit, mimimum, 或則maximum屬性,可以定義在yarn-site.xml檔案或則 resource-types.xml檔案。例如,以下內容可能出現在任一檔案中:

\

Node Manager

每個Node Manager獨立定義該節點可用的資源。資源定義通過設定每個可用資源屬性來完成。屬性必須命名為 yarn.nodemanager.resource-type.或則放到 yarn-site.xml檔案或則 node-resources.xml檔案。該屬性的值應該是該node提供的資源量。例子

\

請注意,用於這些資源的單位不需要與資源管理器【resource manager】所持有的定義相匹配。 如果單元不匹配,資源管理器將自動進行轉換。

MapReduce使用資源

mapreduce從yarn請求三種不同型別的容器:application master容器, map容器,和reduce容器.對於每種容器型別,都有相應的一組屬性可用於設定所請求的資源。在MapReduce中設定資源請求的屬性有:

\

注意,這些資源請求可能會被YARN修改,以滿足配置的minimum 和maximum 資源值,或者是配置增量的倍數。 請參閱yarn排程配置屬性 yarn.scheduler.maximum-allocation-mb, yarn.scheduler.minimum-allocation-mb, yarn.scheduler.increment-allocation-mb, yarn.scheduler.maximum-allocation-vcores, yarn.scheduler.minimum-allocation-vcores, and yarn.scheduler.increment-allocation-vcores。