Hadoop 3.0: YARN Resource自定義資源配置說明
問題導(dǎo)讀
- yarn默認(rèn)情況下使用哪些資源?
- Yarn如何實現(xiàn)擴(kuò)展自定義資源?
- 自定義資源,可以在哪個配置文件中配置?
- 哪些配置可以在yarn-site.xml文件或則 resource-types.xml文件配置?
- yarn有哪三種Containers?
- 三種Container如何配置請求的CPU,memory等值?
1.概述
yarn支持可擴(kuò)展資源類型.所有節(jié)點、應(yīng)用程序、隊列,默認(rèn)情況下Yarn使用 CPU和內(nèi)存。資源定義可以擴(kuò)展為任意的“countable”資源。一個countable 資源,container運行的時候,將會被暫用,完畢后將會釋放。CPU 和(內(nèi)存)memory都是 countable 資源。其它例子:包括GPU 資源和軟件licenses。
2.配置
支持下面屬性,詳細(xì)如下:
resource-types.xml

node--resources.xml

3.yarn資源模型
Resource Manager
resource manager【資源管理器】是tracke集群中哪些資源的最終仲裁者。它從XML配置文件加載定義資源。。例如定義新增加的CPU 和memory,下面屬性應(yīng)該被配置

有效的資源名稱必須以字母開頭,并且只能包含字母,數(shù)字和“。”,“_”或“ - ”中的任何一個。有效的資源名稱也可以選擇在名稱空間后加一個斜杠。一個有效的名字空間由句點分隔的字母,數(shù)字和破折號組成。 例如,以下是有效的資源名稱:
- myresource
- my_resource
- My-Resource01
- com.acme/myresource
以下是無效資源名的示例:
- 10myresource【字母開頭】
- my resource【含有空格】
- com/acme/myresource【沒有命名空間】
- $NS/myresource【字母開頭】
- -none-/myresource【字母開頭】
以上個人標(biāo)注上了錯誤的比較明顯的原因。大家也可以找找其它方面的錯誤。
對于定義的每個新的資源類型,可以添加可選的單元屬性來設(shè)置資源類型的默認(rèn)單位。 有效值是:

屬性必須命名為yarn.resource-types..units。每個定義的資源也可以具有可選的最小和***屬性。屬性必須命名為: yarn.resource-types..minimum 和yarn.resource-types..maximum.
yarn.resource-types屬性和任何的unit, mimimum, 或則maximum屬性,可以定義在yarn-site.xml文件或則 resource-types.xml文件。例如,以下內(nèi)容可能出現(xiàn)在任一文件中:

Node Manager
每個Node Manager獨立定義該節(jié)點可用的資源。資源定義通過設(shè)置每個可用資源屬性來完成。屬性必須命名為 yarn.nodemanager.resource-type.或則放到 yarn-site.xml文件或則 node-resources.xml文件。該屬性的值應(yīng)該是該node提供的資源量。例子

請注意,用于這些資源的單位不需要與資源管理器【resource manager】所持有的定義相匹配。 如果單元不匹配,資源管理器將自動進(jìn)行轉(zhuǎn)換。
MapReduce使用資源
mapreduce從yarn請求三種不同類型的容器:application master容器, map容器,和reduce容器.對于每種容器類型,都有相應(yīng)的一組屬性可用于設(shè)置所請求的資源。在MapReduce中設(shè)置資源請求的屬性有:

注意,這些資源請求可能會被YARN修改,以滿足配置的minimum 和maximum 資源值,或者是配置增量的倍數(shù)。 請參閱yarn調(diào)度配置屬性 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。