/** * Set the <code>nodeLabelExpression</code> of the request. * @see ResourceRequest#setNodeLabelExpression(String) * @param nodeLabelExpression * <code>nodeLabelExpression</code> of the request * @return {@link ResourceRequestBuilder} */ @Public @Evolving public ResourceRequestBuilder nodeLabelExpression( String nodeLabelExpression) { resourceRequest.setNodeLabelExpression(nodeLabelExpression); return this; }
private static void normalizeNodeLabelExpressionInRequest( ResourceRequest resReq, QueueInfo queueInfo) { String labelExp = resReq.getNodeLabelExpression(); // if queue has default label expression, and RR doesn't have, use the // default label expression of queue if (labelExp == null && queueInfo != null && ResourceRequest.ANY .equals(resReq.getResourceName())) { labelExp = queueInfo.getDefaultNodeLabelExpression(); } // If labelExp still equals to null, set it to be NO_LABEL if (labelExp == null) { labelExp = RMNodeLabelsManager.NO_LABEL; } resReq.setNodeLabelExpression(labelExp); }
private static void normalizeNodeLabelExpressionInRequest( ResourceRequest resReq, QueueInfo queueInfo) { String labelExp = resReq.getNodeLabelExpression(); // if queue has default label expression, and RR doesn't have, use the // default label expression of queue if (labelExp == null && queueInfo != null && ResourceRequest.ANY .equals(resReq.getResourceName())) { labelExp = queueInfo.getDefaultNodeLabelExpression(); } // If labelExp still equals to null, set it to be NO_LABEL if (labelExp == null) { labelExp = RMNodeLabelsManager.NO_LABEL; } resReq.setNodeLabelExpression(labelExp); }
private void updateNodeLabels(ResourceRequest request) { String resourceName = request.getResourceName(); if (resourceName.equals(ResourceRequest.ANY)) { ResourceRequest previousAnyRequest = getResourceRequest(resourceName); // When there is change in ANY request label expression, we should // update label for all resource requests already added of same // priority as ANY resource request. if ((null == previousAnyRequest) || hasRequestLabelChanged( previousAnyRequest, request)) { for (ResourceRequest r : resourceRequestMap.values()) { if (!r.getResourceName().equals(ResourceRequest.ANY)) { r.setNodeLabelExpression(request.getNodeLabelExpression()); } } } } else{ ResourceRequest anyRequest = getResourceRequest(ResourceRequest.ANY); if (anyRequest != null) { request.setNodeLabelExpression(anyRequest.getNodeLabelExpression()); } } }
public static ResourceRequest newResourceRequest(Priority priority, String hostName, Resource capability, int numContainers, String label) { ResourceRequest request = recordFactory.newRecordInstance(ResourceRequest.class); request.setPriority(priority); request.setResourceName(hostName); request.setCapability(capability); request.setNumContainers(numContainers); request.setNodeLabelExpression(label); return request; }
public static ResourceRequest newResourceRequest(Priority priority, String hostName, Resource capability, int numContainers, String label) { ResourceRequest request = recordFactory.newRecordInstance(ResourceRequest.class); request.setPriority(priority); request.setResourceName(hostName); request.setCapability(capability); request.setNumContainers(numContainers); request.setNodeLabelExpression(label); return request; }
public class MockRMNullStateStore extends NullRMStateStore { @SuppressWarnings("rawtypes") @Override protected EventHandler getRMStateStoreEventHandler() { return rmStateStoreEventHandler; } }
@Public @Stable public static ResourceRequest newInstance(Priority priority, String hostName, Resource capability, int numContainers, boolean relaxLocality, String labelExpression) { ResourceRequest request = Records.newRecord(ResourceRequest.class); request.setPriority(priority); request.setResourceName(hostName); request.setCapability(capability); request.setNumContainers(numContainers); request.setRelaxLocality(relaxLocality); request.setNodeLabelExpression(labelExpression); return request; }
@Public @Stable public static ResourceRequest newInstance(Priority priority, String hostName, Resource capability, int numContainers, boolean relaxLocality, String labelExpression) { ResourceRequest request = Records.newRecord(ResourceRequest.class); request.setPriority(priority); request.setResourceName(hostName); request.setCapability(capability); request.setNumContainers(numContainers); request.setRelaxLocality(relaxLocality); request.setNodeLabelExpression(labelExpression); return request; }
@Public @Stable public static ResourceRequest newInstance(Priority priority, String hostName, Resource capability, int numContainers, boolean relaxLocality, String labelExpression) { ResourceRequest request = Records.newRecord(ResourceRequest.class); request.setPriority(priority); request.setResourceName(hostName); request.setCapability(capability); request.setNumContainers(numContainers); request.setRelaxLocality(relaxLocality); request.setNodeLabelExpression(labelExpression); return request; }
private synchronized void addResourceRequest( SchedulerRequestKey schedulerKey, Map<String, ResourceRequest> requests, String resourceName, Resource capability) { ResourceRequest request = requests.get(resourceName); if (request == null) { request = org.apache.hadoop.yarn.server.utils.BuilderUtils.newResourceRequest( schedulerKey.getPriority(), resourceName, capability, 1); requests.put(resourceName, request); } else { request.setNumContainers(request.getNumContainers() + 1); } if (request.getNodeLabelExpression() == null) { request.setNodeLabelExpression(RMNodeLabelsManager.NO_LABEL); } // Note this down for next interaction with ResourceManager ask.remove(request); // clone to ensure the RM doesn't manipulate the same obj ask.add(ResourceRequest.clone(request)); if (LOG.isDebugEnabled()) { LOG.debug("addResourceRequest: applicationId=" + applicationId.getId() + " priority=" + schedulerKey.getPriority().getPriority() + " resourceName=" + resourceName + " capability=" + capability + " numContainers=" + request.getNumContainers() + " #asks=" + ask.size()); } }
public static ResourceRequest newResourceRequest(ResourceRequest r) { ResourceRequest request = recordFactory .newRecordInstance(ResourceRequest.class); request.setPriority(r.getPriority()); request.setResourceName(r.getResourceName()); request.setCapability(r.getCapability()); request.setNumContainers(r.getNumContainers()); request.setNodeLabelExpression(r.getNodeLabelExpression()); return request; }
private static ResourceRequest createResourceReqForIncrease( SchedulerRequestKey schedulerRequestKey, Resource resToIncrease, ResourceRequest rr, RMContainer rmContainer, String resourceName) { rr.setResourceName(resourceName); rr.setNumContainers(1); rr.setRelaxLocality(false); rr.setPriority(rmContainer.getContainer().getPriority()); rr.setAllocationRequestId(schedulerRequestKey.getAllocationRequestId()); rr.setCapability(resToIncrease); rr.setNodeLabelExpression(rmContainer.getNodeLabelExpression()); rr.setExecutionTypeRequest(ExecutionTypeRequest.newInstance( ExecutionType.GUARANTEED, true)); return rr; }
public static ResourceRequest createResourceRequest(String resourceName, int memory, int vcores, int numContainers, boolean relaxLocality, Priority priority, RecordFactory recordFactory, String labelExpression) { ResourceRequest request = recordFactory.newRecordInstance(ResourceRequest.class); Resource capability = Resources.createResource(memory, vcores); request.setNumContainers(numContainers); request.setResourceName(resourceName); request.setCapability(capability); request.setRelaxLocality(relaxLocality); request.setPriority(priority); request.setNodeLabelExpression(labelExpression); return request; }
protected ResourceRequest createResourceRequest( int memory, int vcores, String host, int priority, int numContainers, boolean relaxLocality) { ResourceRequest request = recordFactory.newRecordInstance(ResourceRequest.class); request.setCapability(BuilderUtils.newResource(memory, vcores)); request.setResourceName(host); request.setNumContainers(numContainers); Priority prio = recordFactory.newRecordInstance(Priority.class); prio.setPriority(priority); request.setPriority(prio); request.setRelaxLocality(relaxLocality); request.setNodeLabelExpression(RMNodeLabelsManager.NO_LABEL); return request; }
protected ResourceRequest createResourceRequest( int memory, int vcores, String host, int priority, int numContainers, boolean relaxLocality) { ResourceRequest request = recordFactory.newRecordInstance(ResourceRequest.class); request.setCapability(BuilderUtils.newResource(memory, vcores)); request.setResourceName(host); request.setNumContainers(numContainers); Priority prio = recordFactory.newRecordInstance(Priority.class); prio.setPriority(priority); request.setPriority(prio); request.setRelaxLocality(relaxLocality); request.setNodeLabelExpression(RMNodeLabelsManager.NO_LABEL); return request; }
@SuppressWarnings("deprecation") @Test public void testRMAppSubmitAMContainerResourceRequest() throws Exception { asContext.setResource(Resources.createResource(1024)); asContext.setAMContainerResourceRequests(null); ResourceRequest req = ResourceRequest.newInstance(Priority.newInstance(0), ResourceRequest.ANY, Resources.createResource(1025), 1, true); req.setNodeLabelExpression(RMNodeLabelsManager.NO_LABEL); asContext.setAMContainerResourceRequest(ResourceRequest.clone(req)); // getAMContainerResourceRequests uses a singleton list of // getAMContainerResourceRequest Assert.assertEquals(req, asContext.getAMContainerResourceRequest()); Assert.assertEquals(req, asContext.getAMContainerResourceRequests().get(0)); Assert.assertEquals(1, asContext.getAMContainerResourceRequests().size()); RMApp app = testRMAppSubmit(); // setAMContainerResourceRequest has priority over setResource Assert.assertEquals(Collections.singletonList(req), app.getAMResourceRequests()); }
public ResourceRequest createResourceReq(String resource, int memory, int priority, int containers, String labelExpression) throws Exception { ResourceRequest req = Records.newRecord(ResourceRequest.class); req.setResourceName(resource); req.setNumContainers(containers); Priority pri = Records.newRecord(Priority.class); pri.setPriority(priority); req.setPriority(pri); Resource capability = Records.newRecord(Resource.class); capability.setMemory(memory); req.setCapability(capability); if (labelExpression != null) { req.setNodeLabelExpression(labelExpression); } return req; }
public ResourceRequest createResourceReq(String resource, int memory, int priority, int containers, String labelExpression, ExecutionTypeRequest executionTypeRequest) throws Exception { ResourceRequest req = Records.newRecord(ResourceRequest.class); req.setResourceName(resource); req.setNumContainers(containers); Priority pri = Records.newRecord(Priority.class); pri.setPriority(priority); req.setPriority(pri); Resource capability = Records.newRecord(Resource.class); capability.setMemorySize(memory); req.setCapability(capability); if (labelExpression != null) { req.setNodeLabelExpression(labelExpression); } req.setExecutionTypeRequest(executionTypeRequest); return req; }
public static ResourceRequest createResourceRequest(String resource, int memory, int vCores, int priority, int containers, String labelExpression, boolean relaxLocality) throws YarnException { ResourceRequest req = Records.newRecord(ResourceRequest.class); req.setResourceName(resource); req.setNumContainers(containers); Priority pri = Records.newRecord(Priority.class); pri.setPriority(priority); req.setPriority(pri); Resource capability = Records.newRecord(Resource.class); capability.setMemorySize(memory); capability.setVirtualCores(vCores); req.setCapability(capability); if (labelExpression != null) { req.setNodeLabelExpression(labelExpression); } req.setRelaxLocality(relaxLocality); return req; }