List of usage examples for org.apache.hadoop.yarn.api.protocolrecords AllocateRequest setReleaseList
@Public @Stable public abstract void setReleaseList(List<ContainerId> releaseContainers);
ContainerId of containers being released by the ApplicationMaster From source file:org.springframework.yarn.am.allocate.DefaultContainerAllocator.java
License:Apache License
@Override protected AllocateResponse doContainerRequest() { List<ResourceRequest> requestedContainers = new ArrayList<ResourceRequest>(); Map<String, Integer> allocateCounts = allocateCountTracker.getAllocateCounts(); for (Entry<String, Integer> entry : allocateCounts.entrySet()) { requestedContainers.add(getContainerResourceRequest(entry.getValue(), entry.getKey())); }/*from w w w. j a v a 2 s. c o m*/ // add pending containers to be released List<ContainerId> release = new ArrayList<ContainerId>(); ContainerId element = null; while ((element = releaseContainers.poll()) != null) { release.add(element); } if (log.isDebugEnabled()) { log.debug("Requesting containers using " + requestedContainers.size() + " requests."); for (ResourceRequest resourceRequest : requestedContainers) { log.debug( "ResourceRequest: " + resourceRequest + " with count=" + resourceRequest.getNumContainers() + " with hostName=" + resourceRequest.getResourceName()); } log.debug("Releasing containers " + release.size()); for (ContainerId cid : release) { log.debug("Release container=" + cid); } log.debug("Request id will be: " + requestId.get()); } // build the allocation request AllocateRequest request = Records.newRecord(AllocateRequest.class); request.setResponseId(requestId.get()); request.setAskList(requestedContainers); request.setReleaseList(release); request.setProgress(applicationProgress); // do request and return response AllocateResponse allocate = getRmTemplate().allocate(request); requestId.set(allocate.getResponseId()); return allocate; }