new NodeLabelsUpdateSchedulerEvent(newNodeToLabelsMap));
@Override public void handle(SchedulerEvent event) { switch (event.getType()) { case NODE_LABELS_UPDATE: receivedEvent = true; updatedNodeToLabels = ((NodeLabelsUpdateSchedulerEvent) event).getUpdatedNodeToLabels(); break; default: break; } } }
new NodeLabelsUpdateSchedulerEvent(newNodeToLabelsMap));
/** * Process node labels update. */ private void updateNodeLabelsAndQueueResource( NodeLabelsUpdateSchedulerEvent labelUpdateEvent) { try { writeLock.lock(); Set<String> updateLabels = new HashSet<String>(); for (Entry<NodeId, Set<String>> entry : labelUpdateEvent .getUpdatedNodeToLabels().entrySet()) { NodeId id = entry.getKey(); Set<String> labels = entry.getValue(); FiCaSchedulerNode node = nodeTracker.getNode(id); if (node != null) { // Update old partition to list. updateLabels.add(node.getPartition()); } updateLabelsOnNode(id, labels); updateLabels.addAll(labels); } refreshLabelToNodeCache(updateLabels); Resource clusterResource = getClusterResource(); getRootQueue().updateClusterResource(clusterResource, new ResourceLimits(clusterResource)); } finally { writeLock.unlock(); } }
new NodeLabelsUpdateSchedulerEvent(newNodeToLabelsMap));
.getUpdatedNodeToLabels().entrySet()) { NodeId id = entry.getKey(); Set<String> labels = entry.getValue();
cs.handle(new NodeLabelsUpdateSchedulerEvent( ImmutableMap.of(nm1.getNodeId(), toSet("z")))); Map<NodeId,Set<String>> map = ImmutableMap.of(nm1.getNodeId(), emptyLabels); cs.handle(new NodeLabelsUpdateSchedulerEvent(map)); checkUsedResource(rm, "a", 0, "x"); checkUsedResource(rm, "a", 0, "z");
.getUpdatedNodeToLabels().entrySet()) { NodeId id = entry.getKey(); Set<String> labels = entry.getValue();
cs.handle(new NodeLabelsUpdateSchedulerEvent(ImmutableMap.of(nm1.getNodeId(), toSet("z")))); Thread.sleep(100); cs.handle(new NodeLabelsUpdateSchedulerEvent(ImmutableMap.of(nm1.getNodeId(), toSet("y")))); Thread.sleep(100); emptyLabels); mgr.replaceLabelsOnNode(map); cs.handle(new NodeLabelsUpdateSchedulerEvent(map)); Thread.sleep(100); checkUsedResource(rm, "a", 0, "x");
cs.handle(new NodeLabelsUpdateSchedulerEvent(ImmutableMap.of(nm1.getNodeId(), toSet("z")))); checkUsedResource(rm, "a", 0, "x");