public static String labelContainer(Container container) { StringBuilder buf = new StringBuilder() .append("[id: ") .append(container.getId()) .append(", host: ") .append(container.getNodeId().getHost()) .append(", priority: ") .append(container.getPriority()) .append("]"); return buf.toString(); }
/** * Utility method to display YARN container information in a useful way for * log messages. * * @param container * @return */ public static String describeContainer(Container container) { StringBuilder buf = new StringBuilder() .append("[id: ") .append(container.getId()) .append(", host: ") .append(container.getNodeId().getHost()) .append(", priority: ") .append(container.getPriority()) .append(", memory: ") .append(container.getResource().getMemory()) .append(" MB, vcores: ") .append(container.getResource().getVirtualCores()) .append("]"); return buf.toString(); }
private static Container mockContainer(String host, int port, int containerId, Resource resource) { Container mockContainer = mock(Container.class); NodeId mockNodeId = NodeId.newInstance(host, port); ContainerId mockContainerId = ContainerId.newInstance( ApplicationAttemptId.newInstance( ApplicationId.newInstance(System.currentTimeMillis(), 1), 1 ), containerId ); when(mockContainer.getId()).thenReturn(mockContainerId); when(mockContainer.getNodeId()).thenReturn(mockNodeId); when(mockContainer.getResource()).thenReturn(resource); when(mockContainer.getPriority()).thenReturn(Priority.UNDEFINED); return mockContainer; }
@Override public synchronized void containersAllocated(List<Container> containers) { EventContext context = new EventContext(this); for (Container container : containers) { if (allocatedContainers.contains(container.getId())) { continue; } // We should never get a container on a node in the blacklist we // sent to YARN. If we do, something is wrong. Log the error and // reject the container. Else, bad things happen further along as // the tracking mechanisms assume one task per node. String host = container.getNodeId().getHost(); if (nodeInventory.isInUse(host)) { LOG.error( "Host is in use, but YARN allocated a container: " + DoYUtil.labelContainer(container) + " - container rejected." ); yarn.releaseContainer(container); continue; } // The container is fine. allocatedContainers.add(container.getId()); int priority = container.getPriority().getPriority(); int offset = priority - PRIORITY_OFFSET; if (offset < 0 || offset > prioritizedGroups.size()) { LOG.error("Container allocated with unknown priority " + DoYUtil.labelContainer(container)); continue; } context.setGroup(prioritizedGroups.get(offset)); context.group.containerAllocated(context, container); } }
if (nimbusMap.containsKey(containerId)) { Container nimbusContainer = nimbusMap.get(containerId); containerAsk = setupContainerAskForRM(nimbusContainer.getResource().getMemory(), nimbusContainer.getResource().getVirtualCores(), nimbusContainer.getPriority().getPriority(), nimbusContainer.getNodeId().getHost()); LOG.info("restart nimbus container" + ", containerId=" + containerStatus.getContainerId()); } else if (supervisorMap.containsKey(containerId)) { Container supervisorContainer = supervisorMap.get(containerId); containerAsk = setupContainerAskForRM(supervisorContainer.getResource().getMemory(), supervisorContainer.getResource().getVirtualCores(), supervisorContainer.getPriority().getPriority(), supervisorContainer.getNodeId().getHost()); LOG.info("restart supervisor container" + ", containerId=" + containerStatus.getContainerId());
if (container.getPriority().getPriority() == 0) jstormMasterContext.supervisorContainers.add(container); else if (container.getPriority().getPriority() == 1) { jstormMasterContext.nimbusContainers.add(container);
if (allocatedContainer.getPriority().getPriority() == 0) {
@Override public Priority getAllocatedPriority() { return container.getPriority(); }
@Override public Priority getAllocatedPriority() { return container.getPriority(); }
@Override public Priority getAllocatedPriority() { return container.getPriority(); }
/** * Map from a container to a role key by way of its priority * @param container container * @return role key */ public static int extractRole(Container container) { Priority priority = container.getPriority(); return extractRole(priority); }
/** * Map from a container to a role key by way of its priority * @param container container * @return role key */ public static int extractRole(Container container) { Priority priority = container.getPriority(); return extractRole(priority); }
@Override public int compare(RMContainer a, RMContainer b) { Comparator<Priority> c = new org.apache.hadoop.yarn.server .resourcemanager.resource.Priority.Comparator(); int priorityComp = c.compare(b.getContainer().getPriority(), a.getContainer().getPriority()); if (priorityComp != 0) { return priorityComp; } return b.getContainerId().compareTo(a.getContainerId()); } });
@Override public int compare(RMContainer a, RMContainer b) { Comparator<Priority> c = new org.apache.hadoop.yarn.server .resourcemanager.resource.Priority.Comparator(); int priorityComp = c.compare(b.getContainer().getPriority(), a.getContainer().getPriority()); if (priorityComp != 0) { return priorityComp; } return b.getContainerId().compareTo(a.getContainerId()); } });
@Override public int compare(RMContainer c1, RMContainer c2) { int ret = c1.getContainer().getPriority().compareTo( c2.getContainer().getPriority()); if (ret == 0) { return c2.getContainerId().compareTo(c1.getContainerId()); } return ret; } }
@Override public int compare(RMContainer c1, RMContainer c2) { int ret = c1.getContainer().getPriority().compareTo( c2.getContainer().getPriority()); if (ret == 0) { return c2.getContainerId().compareTo(c1.getContainerId()); } return ret; } }
public static String containerToString(Container container) { if (container == null) { return "null container"; } return String.format(Locale.ENGLISH, "ContainerID=%s nodeID=%s http=%s priority=%s resource=%s", container.getId(), container.getNodeId(), container.getNodeHttpAddress(), container.getPriority(), container.getResource()); }
public static String containerToString(Container container) { if (container == null) { return "null container"; } return String.format(Locale.ENGLISH, "ContainerID=%s nodeID=%s http=%s priority=%s resource=%s", container.getId(), container.getNodeId(), container.getNodeHttpAddress(), container.getPriority(), container.getResource()); }
public static Container getMockContainer( ContainerId containerId, NodeId nodeId, Resource resource, Priority priority) { Container container = mock(Container.class); when(container.getId()).thenReturn(containerId); when(container.getNodeId()).thenReturn(nodeId); when(container.getResource()).thenReturn(resource); when(container.getPriority()).thenReturn(priority); return container; }
public static Container getMockContainer( ContainerId containerId, NodeId nodeId, Resource resource, Priority priority) { Container container = mock(Container.class); when(container.getId()).thenReturn(containerId); when(container.getNodeId()).thenReturn(nodeId); when(container.getResource()).thenReturn(resource); when(container.getPriority()).thenReturn(priority); return container; }