Class CommonNodeLabelsManager

java.lang.Object
org.apache.hadoop.service.AbstractService
org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager
All Implemented Interfaces:
Closeable, AutoCloseable, org.apache.hadoop.service.Service

@Private public class CommonNodeLabelsManager extends org.apache.hadoop.service.AbstractService
  • Field Details

  • Constructor Details

    • CommonNodeLabelsManager

      public CommonNodeLabelsManager()
  • Method Details

    • handleStoreEvent

      protected void handleStoreEvent(NodeLabelsStoreEvent event)
    • initDispatcher

      protected void initDispatcher(org.apache.hadoop.conf.Configuration conf)
    • serviceInit

      protected void serviceInit(org.apache.hadoop.conf.Configuration conf) throws Exception
      Overrides:
      serviceInit in class org.apache.hadoop.service.AbstractService
      Throws:
      Exception
    • isInitNodeLabelStoreInProgress

      protected boolean isInitNodeLabelStoreInProgress()
      Returns:
      the isStartup
    • isCentralizedConfiguration

      public boolean isCentralizedConfiguration()
      Returns:
      true if node label configuration type is not distributed.
    • initNodeLabelStore

      protected void initNodeLabelStore(org.apache.hadoop.conf.Configuration conf) throws Exception
      Throws:
      Exception
    • startDispatcher

      protected void startDispatcher()
    • serviceStart

      protected void serviceStart() throws Exception
      Overrides:
      serviceStart in class org.apache.hadoop.service.AbstractService
      Throws:
      Exception
    • stopDispatcher

      protected void stopDispatcher()
    • serviceStop

      protected void serviceStop() throws Exception
      Overrides:
      serviceStop in class org.apache.hadoop.service.AbstractService
      Throws:
      Exception
    • addToCluserNodeLabels

      public void addToCluserNodeLabels(Collection<org.apache.hadoop.yarn.api.records.NodeLabel> labels) throws IOException
      Throws:
      IOException
    • addToCluserNodeLabelsWithDefaultExclusivity

      @VisibleForTesting public void addToCluserNodeLabelsWithDefaultExclusivity(Set<String> labels) throws IOException
      Add multiple node labels to repository.
      Parameters:
      labels - new node labels added
      Throws:
      IOException - io error occur.
    • checkAddLabelsToNode

      protected void checkAddLabelsToNode(Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> addedLabelsToNode) throws IOException
      Throws:
      IOException
    • addLabelsToNode

      public void addLabelsToNode(Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> addedLabelsToNode) throws IOException
      add more labels to nodes.
      Parameters:
      addedLabelsToNode - node -> labels map
      Throws:
      IOException - io error occur.
    • checkRemoveFromClusterNodeLabels

      protected void checkRemoveFromClusterNodeLabels(Collection<String> labelsToRemove) throws IOException
      Throws:
      IOException
    • internalRemoveFromClusterNodeLabels

      protected void internalRemoveFromClusterNodeLabels(Collection<String> labelsToRemove)
    • removeFromClusterNodeLabels

      public void removeFromClusterNodeLabels(Collection<String> labelsToRemove) throws IOException
      Remove multiple node labels from repository
      Parameters:
      labelsToRemove - node labels to remove
      Throws:
      IOException - io error occur.
    • checkRemoveLabelsFromNode

      protected void checkRemoveLabelsFromNode(Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> removeLabelsFromNode) throws IOException
      Throws:
      IOException
    • removeNodeFromLabels

      protected void removeNodeFromLabels(org.apache.hadoop.yarn.api.records.NodeId node, Set<String> labels)
    • removeLabelsFromNodeInHost

      protected void removeLabelsFromNodeInHost(org.apache.hadoop.yarn.api.records.NodeId node, Set<String> labels) throws IOException
      Throws:
      IOException
    • isNodeLabelExplicit

      protected boolean isNodeLabelExplicit(org.apache.hadoop.yarn.api.records.NodeId nodeId)
    • internalUpdateLabelsOnNodes

      protected void internalUpdateLabelsOnNodes(Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> nodeToLabels, org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager.NodeLabelUpdateOperation op) throws IOException
      Throws:
      IOException
    • removeLabelsFromNode

      public void removeLabelsFromNode(Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> removeLabelsFromNode) throws IOException
      remove labels from nodes, labels being removed most be contained by these nodes.
      Parameters:
      removeLabelsFromNode - node -> labels map
      Throws:
      IOException - io error occur.
    • checkReplaceLabelsOnNode

      protected void checkReplaceLabelsOnNode(Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> replaceLabelsToNode) throws IOException
      Throws:
      IOException
    • replaceLabelsOnNode

      public void replaceLabelsOnNode(Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> replaceLabelsToNode) throws IOException
      replace labels to nodes
      Parameters:
      replaceLabelsToNode - node -> labels map
      Throws:
      IOException - io error occur.
    • getNodeLabels

      public Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> getNodeLabels()
      Get mapping of nodes to labels
      Returns:
      nodes to labels map
    • getNodeLabelsInfo

      public Map<org.apache.hadoop.yarn.api.records.NodeId,Set<org.apache.hadoop.yarn.api.records.NodeLabel>> getNodeLabelsInfo()
      Get mapping of nodes to label info
      Returns:
      nodes to labels map
    • getNodesWithoutALabel

      public Set<org.apache.hadoop.yarn.api.records.NodeId> getNodesWithoutALabel()
      Get nodes that have no labels.
      Returns:
      set of nodes with no labels
    • getLabelsToNodes

      public Map<String,Set<org.apache.hadoop.yarn.api.records.NodeId>> getLabelsToNodes()
      Get mapping of labels to nodes for all the labels.
      Returns:
      labels to nodes map
    • getLabelsToNodes

      public Map<String,Set<org.apache.hadoop.yarn.api.records.NodeId>> getLabelsToNodes(Set<String> labels)
      Get mapping of labels to nodes for specified set of labels.
      Parameters:
      labels - set of labels for which labels to nodes mapping will be returned.
      Returns:
      labels to nodes map
    • getLabelsInfoToNodes

      public Map<org.apache.hadoop.yarn.api.records.NodeLabel,Set<org.apache.hadoop.yarn.api.records.NodeId>> getLabelsInfoToNodes()
      Get mapping of labels to nodes for all the labels.
      Returns:
      labels to nodes map
    • getLabelsInfoToNodes

      public Map<org.apache.hadoop.yarn.api.records.NodeLabel,Set<org.apache.hadoop.yarn.api.records.NodeId>> getLabelsInfoToNodes(Set<String> labels)
      Get mapping of labels info to nodes for specified set of labels.
      Parameters:
      labels - set of nodelabels for which labels to nodes mapping will be returned.
      Returns:
      labels to nodes map
    • getClusterNodeLabelNames

      public Set<String> getClusterNodeLabelNames()
      Get existing valid labels in repository
      Returns:
      existing valid labels in repository
    • getClusterNodeLabels

      public List<org.apache.hadoop.yarn.api.records.NodeLabel> getClusterNodeLabels()
    • isExclusiveNodeLabel

      public boolean isExclusiveNodeLabel(String nodeLabel) throws IOException
      Throws:
      IOException
    • normalizeLabel

      protected String normalizeLabel(String label)
    • getNMInNodeSet

      protected CommonNodeLabelsManager.Node getNMInNodeSet(org.apache.hadoop.yarn.api.records.NodeId nodeId)
    • getNMInNodeSet

      protected CommonNodeLabelsManager.Node getNMInNodeSet(org.apache.hadoop.yarn.api.records.NodeId nodeId, Map<String,CommonNodeLabelsManager.Host> map)
    • getNMInNodeSet

      protected CommonNodeLabelsManager.Node getNMInNodeSet(org.apache.hadoop.yarn.api.records.NodeId nodeId, Map<String,CommonNodeLabelsManager.Host> map, boolean checkRunning)
    • getLabelsByNode

      protected Set<String> getLabelsByNode(org.apache.hadoop.yarn.api.records.NodeId nodeId)
    • getLabelsByNode

      protected Set<String> getLabelsByNode(org.apache.hadoop.yarn.api.records.NodeId nodeId, Map<String,CommonNodeLabelsManager.Host> map)
    • getLabelsInfoByNode

      public Set<org.apache.hadoop.yarn.api.records.NodeLabel> getLabelsInfoByNode(org.apache.hadoop.yarn.api.records.NodeId nodeId)
    • createNodeIfNonExisted

      protected void createNodeIfNonExisted(org.apache.hadoop.yarn.api.records.NodeId nodeId) throws IOException
      Throws:
      IOException
    • createHostIfNonExisted

      protected void createHostIfNonExisted(String hostName)
    • normalizeNodeIdToLabels

      protected Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> normalizeNodeIdToLabels(Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> nodeIdToLabels)
    • setInitNodeLabelStoreInProgress

      public void setInitNodeLabelStoreInProgress(boolean initNodeLabelStoreInProgress)