Hadoop 3.0: YARN Resource自定義資源配置說明
yarn支援可擴充套件資源型別 所有節點、應用程式、佇列,預設情況下Yarn使用 CPU和記憶體。資源定義可以擴充套件為任意的“countable”資源。一個countable 資源,container執行的時候,將會被暫用,完畢後將會釋放。
問題導讀
- yarn預設情況下使用哪些資源?
- Yarn如何實現擴充套件自定義資源?
- 自定義資源,可以在哪個配置檔案中配置?
- 哪些配置可以在yarn-site.xml檔案或則 resource-types.xml檔案配置?
- yarn有哪三種Containers?
- 三種Container如何配置請求的CPU,memory等值?
1.概述
yarn支援可擴充套件資源型別.所有節點、應用程式、佇列,預設情況下Yarn使用 CPU和記憶體。資源定義可以擴充套件為任意的“countable”資源。一個countable 資源,container執行的時候,將會被暫用,完畢後將會釋放。CPU 和(記憶體)memory都是 countable 資源。其它例子:包括GPU 資源和軟體licenses。
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。