码迷,mamicode.com
首页 > 其他好文 > 详细

CH 9 节点属性

时间:2021-06-28 20:45:39      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:恢复   container   dem   tco   list   mes   rem   tee   red   

概述

节点属性是一种描述节点的方式没有资源保障。可以用来让应用挑选正确的节点

特性

节点属性有一下几个特性:

  • 一个节点可以有多个属性
  • 值可以与标记到节点的属性相关联,目前只支持字符串
  • 和node label不一样,node属性不需要在集群级别显示指定,但是有api可以列出集群级别的属性
  • 作为无形的资源,并不关联任何队列和对应的资源,属性也不需要授权
  • 和分配tag类似,应用使用这些属性决定容器的位置
  • 目前只支持等于和不等于
  • 节点属性是硬限制,也就是说只有的完全符合的情况的才能分配。也就是说,请求会被一直挂起知道约束被满足。
  • 操作性:
    • 节点属性和对应的node会在RM重启的时候恢复
    • 更新节点属性,在RM运行是,admin可以增加,删除修改属性。
  • 有2种方式NM到node属性的映射
    • 中心化:通过CLI,RPC,映射节点和节点属性
    • 分布式:通过NM中的Node Attributes Provider映射
  • 不想labels,属性可以同时使用中心化和分布式。
配置
设置ResourceManager的节点属性

配置在yarn-site.xml中

属性 描述
yarn.node-attribute.fs-store.root-dir 中心化节点属性映射存放的目录
yarn.node-attribute.fs-store.impl.class 配置org.apache.hadoop.yarn.nodelabels.NodeAttributeStore

注意:

  • 目录需要配置成RM有权限访问的目录
  • 如果是本地文件系统设置为file:///home/yarn/node-attributes ,hdfs目录:
     hdfs://namenode:port/path/to/store/node-attributes/
中心化节点属性映射
  • 增加:yarn nodeattributes -add “node1:attribute[(type)][=value],attribute2 node2:attribute2[=value],attribute3
  • 删除:yarn nodeattributes -remove “node1:attribute,attribute1 node2:attribute2"
  • 更新:yarn nodeattributes -replace “node1:attribute[(type)][=value],attribute1[=value],attribute2 node2:attribute2[=value],attribute3"
分布式属性映射

分布式映射,是通过配置的:

属性 描述
yarn.nodemanager.node-attributes.provider NM中node属性provider,script,config或者类名
yarn.nodemanager.node-attributes.provider.fetch-interval-ms 定期获取节点属性的时间
yarn.nodemanager.node-attributes.provider.fetch-timeout-ms 如果script,超时之后会被中断,超时时间
yarn.nodemanager.node-attributes.provider.script.path script路径
yarn.nodemanager.node-attributes.provider.script.opts 脚本需要的参数
yarn.nodemanager.node-attributes.provider.configured-node-attributes 当配置为config时,从参数获取节点属性
指定应用的节点属性

//expression : AND(python!=3:java=1.8)
SchedulingRequest schedulingRequest =
    SchedulingRequest.newBuilder().executionType(
        ExecutionTypeRequest.newInstance(ExecutionType.GUARANTEED))
        .allocationRequestId(10L).priority(Priority.newInstance(1))
        .placementConstraintExpression(
            PlacementConstraints.and(
                PlacementConstraints
                    .targetNodeAttribute(PlacementConstraints.NODE,
                        NodeAttributeOpCode.NE,
                        PlacementConstraints.PlacementTargets
                            .nodeAttribute("python", "3")),
                PlacementConstraints
                    .targetNodeAttribute(PlacementConstraints.NODE,
                        NodeAttributeOpCode.EQ,
                        PlacementConstraints.PlacementTargets
                            .nodeAttribute("java", "1.8")))
                .build()).resourceSizing(
        ResourceSizing.newInstance(1, Resource.newInstance(1024, 1)))
        .build();
监控

REST:http://rm-http-address:port/ws/v1/cluster/nodes/{nodeid} 
web UI:还不支持
通过命令行:

  • yarn cluster --list-node-attributes,从集群中获取所有属性
  • yarn nodeattributes -list  获取求你中的属性
  • yarn nodeattributes -attributestonodes -attributes ,单个属性配置的所有nodes
  • yarn nodeattributes -nodestoattributes -nodes 一个node的所有属性
  • yarn node -status 关联了这个值的node的所有属性

CH 9 节点属性

标签:恢复   container   dem   tco   list   mes   rem   tee   red   

原文地址:https://www.cnblogs.com/Amaranthus/p/14943724.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!