org.apache.hadoop.yarn.nodelabels
Class CommonNodeLabelsManager

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

public class CommonNodeLabelsManager
extends org.apache.hadoop.service.AbstractService


Nested Class Summary
protected static class CommonNodeLabelsManager.Host
          A Host can have multiple Nodes
protected static class CommonNodeLabelsManager.Label
           
protected static class CommonNodeLabelsManager.Node
           
 
Nested classes/interfaces inherited from interface org.apache.hadoop.service.Service
org.apache.hadoop.service.Service.STATE
 
Field Summary
static Set<String> ACCESS_ANY_LABEL_SET
           
static String ANY
           
protected  Dispatcher dispatcher
           
static Set<String> EMPTY_STRING_SET
           
protected  ConcurrentMap<String,CommonNodeLabelsManager.Label> labelCollections
           
protected static org.apache.commons.logging.Log LOG
           
static String NO_LABEL
          If a user doesn't specify label of a queue or node, it belongs DEFAULT_LABEL
protected  ConcurrentMap<String,CommonNodeLabelsManager.Host> nodeCollections
           
protected  ReentrantReadWriteLock.ReadLock readLock
           
protected  NodeLabelsStore store
           
static int WILDCARD_PORT
           
protected  ReentrantReadWriteLock.WriteLock writeLock
           
 
Constructor Summary
CommonNodeLabelsManager()
           
 
Method Summary
 void addLabelsToNode(Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> addedLabelsToNode)
          add more labels to nodes
 void addToCluserNodeLabels(Set<String> labels)
          Add multiple node labels to repository
protected  void checkAddLabelsToNode(Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> addedLabelsToNode)
           
protected  void checkRemoveFromClusterNodeLabels(Collection<String> labelsToRemove)
           
protected  void checkRemoveLabelsFromNode(Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> removeLabelsFromNode)
           
protected  void checkReplaceLabelsOnNode(Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> replaceLabelsToNode)
           
protected  void createHostIfNonExisted(String hostName)
           
protected  void createNodeIfNonExisted(org.apache.hadoop.yarn.api.records.NodeId nodeId)
           
 Set<String> getClusterNodeLabels()
          Get existing valid labels in repository
protected  Set<String> getLabelsByNode(org.apache.hadoop.yarn.api.records.NodeId nodeId)
           
protected  Set<String> getLabelsByNode(org.apache.hadoop.yarn.api.records.NodeId nodeId, Map<String,CommonNodeLabelsManager.Host> map)
           
protected  CommonNodeLabelsManager.Node getNMInNodeSet(org.apache.hadoop.yarn.api.records.NodeId nodeId)
           
protected  CommonNodeLabelsManager.Node getNMInNodeSet(org.apache.hadoop.yarn.api.records.NodeId nodeId, Map<String,CommonNodeLabelsManager.Host> map)
           
protected  CommonNodeLabelsManager.Node getNMInNodeSet(org.apache.hadoop.yarn.api.records.NodeId nodeId, Map<String,CommonNodeLabelsManager.Host> map, boolean checkRunning)
           
 Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> getNodeLabels()
          Get mapping of nodes to labels
protected  void handleStoreEvent(NodeLabelsStoreEvent event)
           
protected  void initDispatcher(org.apache.hadoop.conf.Configuration conf)
           
protected  void initNodeLabelStore(org.apache.hadoop.conf.Configuration conf)
           
protected  void internalAddLabelsToNode(Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> addedLabelsToNode)
           
protected  void internalRemoveFromClusterNodeLabels(Collection<String> labelsToRemove)
           
protected  void internalRemoveLabelsFromNode(Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> removeLabelsFromNode)
           
protected  void internalReplaceLabelsOnNode(Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> replaceLabelsToNode)
           
protected  String normalizeLabel(String label)
           
protected  Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> normalizeNodeIdToLabels(Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> nodeIdToLabels)
           
 void removeFromClusterNodeLabels(Collection<String> labelsToRemove)
          Remove multiple node labels from repository
 void removeLabelsFromNode(Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> removeLabelsFromNode)
          remove labels from nodes, labels being removed most be contained by these nodes
 void replaceLabelsOnNode(Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> replaceLabelsToNode)
          replace labels to nodes
protected  void serviceInit(org.apache.hadoop.conf.Configuration conf)
           
protected  void serviceStart()
           
protected  void serviceStop()
           
protected  void startDispatcher()
           
protected  void stopDispatcher()
           
 
Methods inherited from class org.apache.hadoop.service.AbstractService
close, getBlockers, getConfig, getFailureCause, getFailureState, getLifecycleHistory, getName, getServiceState, getStartTime, init, isInState, noteFailure, putBlocker, registerGlobalListener, registerServiceListener, removeBlocker, setConfig, start, stop, toString, unregisterGlobalListener, unregisterServiceListener, waitForServiceToStop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

LOG

protected static final org.apache.commons.logging.Log LOG

EMPTY_STRING_SET

public static final Set<String> EMPTY_STRING_SET

ANY

public static final String ANY
See Also:
Constant Field Values

ACCESS_ANY_LABEL_SET

public static final Set<String> ACCESS_ANY_LABEL_SET

WILDCARD_PORT

public static final int WILDCARD_PORT
See Also:
Constant Field Values

NO_LABEL

public static final String NO_LABEL
If a user doesn't specify label of a queue or node, it belongs DEFAULT_LABEL

See Also:
Constant Field Values

dispatcher

protected Dispatcher dispatcher

labelCollections

protected ConcurrentMap<String,CommonNodeLabelsManager.Label> labelCollections

nodeCollections

protected ConcurrentMap<String,CommonNodeLabelsManager.Host> nodeCollections

readLock

protected final ReentrantReadWriteLock.ReadLock readLock

writeLock

protected final ReentrantReadWriteLock.WriteLock writeLock

store

protected NodeLabelsStore store
Constructor Detail

CommonNodeLabelsManager

public CommonNodeLabelsManager()
Method Detail

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

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(Set<String> labels)
                           throws IOException
Add multiple node labels to repository

Parameters:
labels - new node labels added
Throws:
IOException

checkAddLabelsToNode

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

internalAddLabelsToNode

protected void internalAddLabelsToNode(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

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

checkRemoveLabelsFromNode

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

internalRemoveLabelsFromNode

protected void internalRemoveLabelsFromNode(Map<org.apache.hadoop.yarn.api.records.NodeId,Set<String>> removeLabelsFromNode)

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

checkReplaceLabelsOnNode

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

internalReplaceLabelsOnNode

protected void internalReplaceLabelsOnNode(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

getNodeLabels

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

Returns:
nodes to labels map

getClusterNodeLabels

public Set<String> getClusterNodeLabels()
Get existing valid labels in repository

Returns:
existing valid labels in repository

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)

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)


Copyright © 2014 Apache Software Foundation. All Rights Reserved.