/** * Set the <code>executionTypeRequest</code> of the request. * @see ResourceRequest#setExecutionTypeRequest( * ExecutionTypeRequest) * @param executionTypeRequest * <code>executionTypeRequest</code> of the request * @return {@link ResourceRequestBuilder} */ @Public @Evolving public ResourceRequestBuilder executionTypeRequest( ExecutionTypeRequest executionTypeRequest) { resourceRequest.setExecutionTypeRequest(executionTypeRequest); return this; }
/** * Set the <code>executionTypeRequest</code> of the request with 'ensure * execution type' flag set to true. * @see ResourceRequest#setExecutionTypeRequest( * ExecutionTypeRequest) * @param executionType <code>executionType</code> of the request. * @return {@link ResourceRequestBuilder} */ @Public @Evolving public ResourceRequestBuilder executionType(ExecutionType executionType) { resourceRequest.setExecutionTypeRequest( ExecutionTypeRequest.newInstance(executionType, true)); return this; }
remoteRequest.setNumContainers(0); remoteRequest.setNodeLabelExpression(nodeLabelExpression); remoteRequest.setExecutionTypeRequest( ExecutionTypeRequest.newInstance(executionType, true)); reqMap.put(capability, remoteRequest);
@SuppressWarnings("unchecked") ResourceRequestInfo addResourceRequest(Long allocationRequestId, Priority priority, String resourceName, ExecutionTypeRequest execTypeReq, Resource capability, T req, boolean relaxLocality, String labelExpression) { ResourceRequestInfo resourceRequestInfo = get(priority, resourceName, execTypeReq.getExecutionType(), capability); if (resourceRequestInfo == null) { resourceRequestInfo = new ResourceRequestInfo(allocationRequestId, priority, resourceName, capability, relaxLocality); put(priority, resourceName, execTypeReq.getExecutionType(), capability, resourceRequestInfo); } resourceRequestInfo.remoteRequest.setExecutionTypeRequest(execTypeReq); resourceRequestInfo.remoteRequest.setNumContainers( resourceRequestInfo.remoteRequest.getNumContainers() + 1); if (relaxLocality) { resourceRequestInfo.containerRequests.add(req); } if (ResourceRequest.ANY.equals(resourceName)) { resourceRequestInfo.remoteRequest.setNodeLabelExpression(labelExpression); } if (LOG.isDebugEnabled()) { LOG.debug("Adding request to ask " + resourceRequestInfo.remoteRequest); } return resourceRequestInfo; }
private ResourceRequestBuilder() { resourceRequest.setResourceName(ANY); resourceRequest.setNumContainers(1); resourceRequest.setPriority(Priority.newInstance(0)); resourceRequest.setRelaxLocality(true); resourceRequest.setExecutionTypeRequest( ExecutionTypeRequest.newInstance()); }
amReq.setExecutionTypeRequest( ExecutionTypeRequest.newInstance(ExecutionType.GUARANTEED)); amReq.setNumContainers(1);
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; }
protected ResourceRequest createResourceRequest(long id, String resource, int memory, int vCores, int priority, ExecutionType execType, int containers) { ResourceRequest req = Records.newRecord(ResourceRequest.class); req.setAllocationRequestId(id); req.setResourceName(resource); req.setCapability(Resource.newInstance(memory, vCores)); req.setPriority(Priority.newInstance(priority)); req.setExecutionTypeRequest(ExecutionTypeRequest.newInstance(execType)); req.setNumContainers(containers); return req; }
public ResourceRequest createResourceRequest(long id, String resource, int memory, int vCores, int priority, ExecutionType execType, int containers) { ResourceRequest req = Records.newRecord(ResourceRequest.class); req.setAllocationRequestId(id); req.setResourceName(resource); req.setCapability(Resource.newInstance(memory, vCores)); req.setPriority(Priority.newInstance(priority)); req.setExecutionTypeRequest(ExecutionTypeRequest.newInstance(execType)); req.setNumContainers(containers); return req; }
@Test public void testRMAppSubmitAMContainerResourceRequestsDisagree() throws Exception { asContext.setResource(null); List<ResourceRequest> reqs = new ArrayList<>(); when(mockDefaultQueueInfo.getAccessibleNodeLabels()).thenReturn (new HashSet<String>() {{ add("label1"); add(""); }}); ResourceRequest anyReq = ResourceRequest.newInstance( Priority.newInstance(1), ResourceRequest.ANY, Resources.createResource(1024), 1, false, "label1", ExecutionTypeRequest.newInstance(ExecutionType.GUARANTEED)); reqs.add(anyReq); reqs.add(ResourceRequest.newInstance(Priority.newInstance(2), "/rack", Resources.createResource(1025), 2, false, "", ExecutionTypeRequest.newInstance(ExecutionType.OPPORTUNISTIC))); reqs.add(ResourceRequest.newInstance(Priority.newInstance(3), "/rack/node", Resources.createResource(1026), 3, true, "", ExecutionTypeRequest.newInstance(ExecutionType.OPPORTUNISTIC))); asContext.setAMContainerResourceRequests(cloneResourceRequests(reqs)); RMApp app = testRMAppSubmit(); // It should force the requests to all agree on these points for (ResourceRequest req : reqs) { req.setCapability(anyReq.getCapability()); req.setExecutionTypeRequest( ExecutionTypeRequest.newInstance(ExecutionType.GUARANTEED)); req.setNumContainers(1); req.setPriority(Priority.newInstance(0)); } Assert.assertEquals(reqs, app.getAMResourceRequests()); }
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; }