java.io.Closeable, java.lang.AutoCloseable, org.apache.hadoop.service.Service@Private
public class CommonNodeLabelsManager
extends org.apache.hadoop.service.AbstractService
| Modifier and Type | Class | Description |
|---|---|---|
static class |
CommonNodeLabelsManager.Host |
A
Host can have multiple Nodes |
protected static class |
CommonNodeLabelsManager.Node |
| Modifier and Type | Field | Description |
|---|---|---|
static java.util.Set<java.lang.String> |
ACCESS_ANY_LABEL_SET |
|
static java.lang.String |
ANY |
|
protected Dispatcher |
dispatcher |
|
static java.util.Set<org.apache.hadoop.yarn.api.records.NodeLabel> |
EMPTY_NODELABEL_SET |
|
static java.util.Set<java.lang.String> |
EMPTY_STRING_SET |
|
protected java.util.concurrent.ConcurrentMap<java.lang.String,RMNodeLabel> |
labelCollections |
|
protected static org.slf4j.Logger |
LOG |
|
static java.lang.String |
NO_LABEL |
If a user doesn't specify label of a queue or node, it belongs
DEFAULT_LABEL
|
static java.lang.String |
NODE_LABELS_NOT_ENABLED_ERR |
Error messages
|
protected java.util.concurrent.ConcurrentMap<java.lang.String,CommonNodeLabelsManager.Host> |
nodeCollections |
|
protected RMNodeLabel |
noNodeLabel |
|
protected java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock |
readLock |
|
protected NodeLabelsStore |
store |
|
static int |
WILDCARD_PORT |
|
protected java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock |
writeLock |
| Constructor | Description |
|---|---|
CommonNodeLabelsManager() |
| Modifier and Type | Method | Description |
|---|---|---|
void |
addLabelsToNode(java.util.Map<org.apache.hadoop.yarn.api.records.NodeId,java.util.Set<java.lang.String>> addedLabelsToNode) |
add more labels to nodes.
|
void |
addToCluserNodeLabels(java.util.Collection<org.apache.hadoop.yarn.api.records.NodeLabel> labels) |
|
void |
addToCluserNodeLabelsWithDefaultExclusivity(java.util.Set<java.lang.String> labels) |
Add multiple node labels to repository.
|
protected void |
checkAddLabelsToNode(java.util.Map<org.apache.hadoop.yarn.api.records.NodeId,java.util.Set<java.lang.String>> addedLabelsToNode) |
|
protected void |
checkRemoveFromClusterNodeLabels(java.util.Collection<java.lang.String> labelsToRemove) |
|
protected void |
checkRemoveLabelsFromNode(java.util.Map<org.apache.hadoop.yarn.api.records.NodeId,java.util.Set<java.lang.String>> removeLabelsFromNode) |
|
protected void |
checkReplaceLabelsOnNode(java.util.Map<org.apache.hadoop.yarn.api.records.NodeId,java.util.Set<java.lang.String>> replaceLabelsToNode) |
|
protected void |
createHostIfNonExisted(java.lang.String hostName) |
|
protected void |
createNodeIfNonExisted(org.apache.hadoop.yarn.api.records.NodeId nodeId) |
|
java.util.Set<java.lang.String> |
getClusterNodeLabelNames() |
Get existing valid labels in repository
|
java.util.List<org.apache.hadoop.yarn.api.records.NodeLabel> |
getClusterNodeLabels() |
|
protected java.util.Set<java.lang.String> |
getLabelsByNode(org.apache.hadoop.yarn.api.records.NodeId nodeId) |
|
protected java.util.Set<java.lang.String> |
getLabelsByNode(org.apache.hadoop.yarn.api.records.NodeId nodeId,
java.util.Map<java.lang.String,CommonNodeLabelsManager.Host> map) |
|
java.util.Set<org.apache.hadoop.yarn.api.records.NodeLabel> |
getLabelsInfoByNode(org.apache.hadoop.yarn.api.records.NodeId nodeId) |
|
java.util.Map<org.apache.hadoop.yarn.api.records.NodeLabel,java.util.Set<org.apache.hadoop.yarn.api.records.NodeId>> |
getLabelsInfoToNodes() |
Get mapping of labels to nodes for all the labels.
|
java.util.Map<org.apache.hadoop.yarn.api.records.NodeLabel,java.util.Set<org.apache.hadoop.yarn.api.records.NodeId>> |
getLabelsInfoToNodes(java.util.Set<java.lang.String> labels) |
Get mapping of labels info to nodes for specified set of labels.
|
java.util.Map<java.lang.String,java.util.Set<org.apache.hadoop.yarn.api.records.NodeId>> |
getLabelsToNodes() |
Get mapping of labels to nodes for all the labels.
|
java.util.Map<java.lang.String,java.util.Set<org.apache.hadoop.yarn.api.records.NodeId>> |
getLabelsToNodes(java.util.Set<java.lang.String> labels) |
Get mapping of labels to nodes for specified set of labels.
|
protected CommonNodeLabelsManager.Node |
getNMInNodeSet(org.apache.hadoop.yarn.api.records.NodeId nodeId) |
|
protected CommonNodeLabelsManager.Node |
getNMInNodeSet(org.apache.hadoop.yarn.api.records.NodeId nodeId,
java.util.Map<java.lang.String,CommonNodeLabelsManager.Host> map) |
|
protected CommonNodeLabelsManager.Node |
getNMInNodeSet(org.apache.hadoop.yarn.api.records.NodeId nodeId,
java.util.Map<java.lang.String,CommonNodeLabelsManager.Host> map,
boolean checkRunning) |
|
java.util.Map<org.apache.hadoop.yarn.api.records.NodeId,java.util.Set<java.lang.String>> |
getNodeLabels() |
Get mapping of nodes to labels
|
java.util.Map<org.apache.hadoop.yarn.api.records.NodeId,java.util.Set<org.apache.hadoop.yarn.api.records.NodeLabel>> |
getNodeLabelsInfo() |
Get mapping of nodes to label info
|
java.util.Set<org.apache.hadoop.yarn.api.records.NodeId> |
getNodesWithoutALabel() |
Get nodes that have no 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 |
internalRemoveFromClusterNodeLabels(java.util.Collection<java.lang.String> labelsToRemove) |
|
protected void |
internalUpdateLabelsOnNodes(java.util.Map<org.apache.hadoop.yarn.api.records.NodeId,java.util.Set<java.lang.String>> nodeToLabels,
org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager.NodeLabelUpdateOperation op) |
|
boolean |
isCentralizedConfiguration() |
|
boolean |
isExclusiveNodeLabel(java.lang.String nodeLabel) |
|
protected boolean |
isInitNodeLabelStoreInProgress() |
|
protected boolean |
isNodeLabelExplicit(org.apache.hadoop.yarn.api.records.NodeId nodeId) |
|
protected java.lang.String |
normalizeLabel(java.lang.String label) |
|
protected java.util.Map<org.apache.hadoop.yarn.api.records.NodeId,java.util.Set<java.lang.String>> |
normalizeNodeIdToLabels(java.util.Map<org.apache.hadoop.yarn.api.records.NodeId,java.util.Set<java.lang.String>> nodeIdToLabels) |
|
void |
removeFromClusterNodeLabels(java.util.Collection<java.lang.String> labelsToRemove) |
Remove multiple node labels from repository
|
void |
removeLabelsFromNode(java.util.Map<org.apache.hadoop.yarn.api.records.NodeId,java.util.Set<java.lang.String>> removeLabelsFromNode) |
remove labels from nodes, labels being removed most be contained by these
nodes.
|
protected void |
removeLabelsFromNodeInHost(org.apache.hadoop.yarn.api.records.NodeId node,
java.util.Set<java.lang.String> labels) |
|
protected void |
removeNodeFromLabels(org.apache.hadoop.yarn.api.records.NodeId node,
java.util.Set<java.lang.String> labels) |
|
void |
replaceLabelsOnNode(java.util.Map<org.apache.hadoop.yarn.api.records.NodeId,java.util.Set<java.lang.String>> replaceLabelsToNode) |
replace labels to nodes
|
protected void |
serviceInit(org.apache.hadoop.conf.Configuration conf) |
|
protected void |
serviceStart() |
|
protected void |
serviceStop() |
|
void |
setInitNodeLabelStoreInProgress(boolean initNodeLabelStoreInProgress) |
|
protected void |
startDispatcher() |
|
protected void |
stopDispatcher() |
close, getBlockers, getConfig, getFailureCause, getFailureState, getLifecycleHistory, getName, getServiceState, getStartTime, init, isInState, noteFailure, putBlocker, registerGlobalListener, registerServiceListener, removeBlocker, setConfig, start, stop, toString, unregisterGlobalListener, unregisterServiceListener, waitForServiceToStopprotected static final org.slf4j.Logger LOG
public static final java.util.Set<java.lang.String> EMPTY_STRING_SET
public static final java.util.Set<org.apache.hadoop.yarn.api.records.NodeLabel> EMPTY_NODELABEL_SET
public static final java.lang.String ANY
public static final java.util.Set<java.lang.String> ACCESS_ANY_LABEL_SET
public static final int WILDCARD_PORT
@VisibleForTesting public static final java.lang.String NODE_LABELS_NOT_ENABLED_ERR
public static final java.lang.String NO_LABEL
protected Dispatcher dispatcher
protected java.util.concurrent.ConcurrentMap<java.lang.String,RMNodeLabel> labelCollections
protected java.util.concurrent.ConcurrentMap<java.lang.String,CommonNodeLabelsManager.Host> nodeCollections
protected RMNodeLabel noNodeLabel
protected final java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock readLock
protected final java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock writeLock
protected NodeLabelsStore store
protected void handleStoreEvent(NodeLabelsStoreEvent event)
protected void initDispatcher(org.apache.hadoop.conf.Configuration conf)
protected void serviceInit(org.apache.hadoop.conf.Configuration conf)
throws java.lang.Exception
serviceInit in class org.apache.hadoop.service.AbstractServicejava.lang.Exceptionprotected boolean isInitNodeLabelStoreInProgress()
public boolean isCentralizedConfiguration()
protected void initNodeLabelStore(org.apache.hadoop.conf.Configuration conf)
throws java.lang.Exception
java.lang.Exceptionprotected void startDispatcher()
protected void serviceStart()
throws java.lang.Exception
serviceStart in class org.apache.hadoop.service.AbstractServicejava.lang.Exceptionprotected void stopDispatcher()
protected void serviceStop()
throws java.lang.Exception
serviceStop in class org.apache.hadoop.service.AbstractServicejava.lang.Exceptionpublic void addToCluserNodeLabels(java.util.Collection<org.apache.hadoop.yarn.api.records.NodeLabel> labels)
throws java.io.IOException
java.io.IOException@VisibleForTesting
public void addToCluserNodeLabelsWithDefaultExclusivity(java.util.Set<java.lang.String> labels)
throws java.io.IOException
labels - new node labels addedjava.io.IOException - io error occur.protected void checkAddLabelsToNode(java.util.Map<org.apache.hadoop.yarn.api.records.NodeId,java.util.Set<java.lang.String>> addedLabelsToNode)
throws java.io.IOException
java.io.IOExceptionpublic void addLabelsToNode(java.util.Map<org.apache.hadoop.yarn.api.records.NodeId,java.util.Set<java.lang.String>> addedLabelsToNode)
throws java.io.IOException
addedLabelsToNode - node -> labels mapjava.io.IOException - io error occur.protected void checkRemoveFromClusterNodeLabels(java.util.Collection<java.lang.String> labelsToRemove)
throws java.io.IOException
java.io.IOExceptionprotected void internalRemoveFromClusterNodeLabels(java.util.Collection<java.lang.String> labelsToRemove)
public void removeFromClusterNodeLabels(java.util.Collection<java.lang.String> labelsToRemove)
throws java.io.IOException
labelsToRemove - node labels to removejava.io.IOException - io error occur.protected void checkRemoveLabelsFromNode(java.util.Map<org.apache.hadoop.yarn.api.records.NodeId,java.util.Set<java.lang.String>> removeLabelsFromNode)
throws java.io.IOException
java.io.IOExceptionprotected void removeNodeFromLabels(org.apache.hadoop.yarn.api.records.NodeId node,
java.util.Set<java.lang.String> labels)
protected void removeLabelsFromNodeInHost(org.apache.hadoop.yarn.api.records.NodeId node,
java.util.Set<java.lang.String> labels)
throws java.io.IOException
java.io.IOExceptionprotected boolean isNodeLabelExplicit(org.apache.hadoop.yarn.api.records.NodeId nodeId)
protected void internalUpdateLabelsOnNodes(java.util.Map<org.apache.hadoop.yarn.api.records.NodeId,java.util.Set<java.lang.String>> nodeToLabels,
org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager.NodeLabelUpdateOperation op)
throws java.io.IOException
java.io.IOExceptionpublic void removeLabelsFromNode(java.util.Map<org.apache.hadoop.yarn.api.records.NodeId,java.util.Set<java.lang.String>> removeLabelsFromNode)
throws java.io.IOException
removeLabelsFromNode - node -> labels mapjava.io.IOException - io error occur.protected void checkReplaceLabelsOnNode(java.util.Map<org.apache.hadoop.yarn.api.records.NodeId,java.util.Set<java.lang.String>> replaceLabelsToNode)
throws java.io.IOException
java.io.IOExceptionpublic void replaceLabelsOnNode(java.util.Map<org.apache.hadoop.yarn.api.records.NodeId,java.util.Set<java.lang.String>> replaceLabelsToNode)
throws java.io.IOException
replaceLabelsToNode - node -> labels mapjava.io.IOException - io error occur.public java.util.Map<org.apache.hadoop.yarn.api.records.NodeId,java.util.Set<java.lang.String>> getNodeLabels()
public java.util.Map<org.apache.hadoop.yarn.api.records.NodeId,java.util.Set<org.apache.hadoop.yarn.api.records.NodeLabel>> getNodeLabelsInfo()
public java.util.Set<org.apache.hadoop.yarn.api.records.NodeId> getNodesWithoutALabel()
public java.util.Map<java.lang.String,java.util.Set<org.apache.hadoop.yarn.api.records.NodeId>> getLabelsToNodes()
public java.util.Map<java.lang.String,java.util.Set<org.apache.hadoop.yarn.api.records.NodeId>> getLabelsToNodes(java.util.Set<java.lang.String> labels)
labels - set of labels for which labels to nodes mapping will be
returned.public java.util.Map<org.apache.hadoop.yarn.api.records.NodeLabel,java.util.Set<org.apache.hadoop.yarn.api.records.NodeId>> getLabelsInfoToNodes()
public java.util.Map<org.apache.hadoop.yarn.api.records.NodeLabel,java.util.Set<org.apache.hadoop.yarn.api.records.NodeId>> getLabelsInfoToNodes(java.util.Set<java.lang.String> labels)
labels - set of nodelabels for which labels to nodes mapping will be
returned.public java.util.Set<java.lang.String> getClusterNodeLabelNames()
public java.util.List<org.apache.hadoop.yarn.api.records.NodeLabel> getClusterNodeLabels()
public boolean isExclusiveNodeLabel(java.lang.String nodeLabel)
throws java.io.IOException
java.io.IOExceptionprotected java.lang.String normalizeLabel(java.lang.String label)
protected CommonNodeLabelsManager.Node getNMInNodeSet(org.apache.hadoop.yarn.api.records.NodeId nodeId)
protected CommonNodeLabelsManager.Node getNMInNodeSet(org.apache.hadoop.yarn.api.records.NodeId nodeId, java.util.Map<java.lang.String,CommonNodeLabelsManager.Host> map)
protected CommonNodeLabelsManager.Node getNMInNodeSet(org.apache.hadoop.yarn.api.records.NodeId nodeId, java.util.Map<java.lang.String,CommonNodeLabelsManager.Host> map, boolean checkRunning)
protected java.util.Set<java.lang.String> getLabelsByNode(org.apache.hadoop.yarn.api.records.NodeId nodeId)
protected java.util.Set<java.lang.String> getLabelsByNode(org.apache.hadoop.yarn.api.records.NodeId nodeId,
java.util.Map<java.lang.String,CommonNodeLabelsManager.Host> map)
public java.util.Set<org.apache.hadoop.yarn.api.records.NodeLabel> getLabelsInfoByNode(org.apache.hadoop.yarn.api.records.NodeId nodeId)
protected void createNodeIfNonExisted(org.apache.hadoop.yarn.api.records.NodeId nodeId)
throws java.io.IOException
java.io.IOExceptionprotected void createHostIfNonExisted(java.lang.String hostName)
protected java.util.Map<org.apache.hadoop.yarn.api.records.NodeId,java.util.Set<java.lang.String>> normalizeNodeIdToLabels(java.util.Map<org.apache.hadoop.yarn.api.records.NodeId,java.util.Set<java.lang.String>> nodeIdToLabels)
public void setInitNodeLabelStoreInProgress(boolean initNodeLabelStoreInProgress)
Copyright © 2008–2025 Apache Software Foundation. All rights reserved.