YARN-3986. getTransferredContainers in AbstractYarnScheduler should be present in YarnScheduler interface
(cherry picked from commit 22de7c1dca
)
This commit is contained in:
parent
c8f1097989
commit
27ced8253b
|
@ -734,6 +734,9 @@ Release 2.8.0 - UNRELEASED
|
|||
YARN-4028. AppBlock page key update and diagnostics value null on recovery
|
||||
(Bibin A Chundatt via xgong)
|
||||
|
||||
YARN-3986. getTransferredContainers in AbstractYarnScheduler should be present
|
||||
in YarnScheduler interface instead. (Varun Saxena via rohithsharmaks)
|
||||
|
||||
Release 2.7.2 - UNRELEASED
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
|
|
@ -89,7 +89,6 @@ import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.event.RMAppAt
|
|||
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.event.RMAppAttemptStatusupdateEvent;
|
||||
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.event.RMAppAttemptUnregistrationEvent;
|
||||
import org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNode;
|
||||
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler;
|
||||
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.Allocation;
|
||||
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerNodeReport;
|
||||
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.YarnScheduler;
|
||||
|
@ -305,7 +304,7 @@ public class ApplicationMasterService extends AbstractService implements
|
|||
// and corresponding NM tokens.
|
||||
if (app.getApplicationSubmissionContext()
|
||||
.getKeepContainersAcrossApplicationAttempts()) {
|
||||
List<Container> transferredContainers = ((AbstractYarnScheduler) rScheduler)
|
||||
List<Container> transferredContainers = rScheduler
|
||||
.getTransferredContainers(applicationAttemptId);
|
||||
if (!transferredContainers.isEmpty()) {
|
||||
response.setContainersFromPreviousAttempts(transferredContainers);
|
||||
|
|
|
@ -32,6 +32,7 @@ import org.apache.hadoop.security.UserGroupInformation;
|
|||
import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
|
||||
import org.apache.hadoop.yarn.api.records.ApplicationId;
|
||||
import org.apache.hadoop.yarn.api.records.ApplicationResourceUsageReport;
|
||||
import org.apache.hadoop.yarn.api.records.Container;
|
||||
import org.apache.hadoop.yarn.api.records.ContainerId;
|
||||
import org.apache.hadoop.yarn.api.records.NodeId;
|
||||
import org.apache.hadoop.yarn.api.records.Priority;
|
||||
|
@ -317,4 +318,14 @@ public interface YarnScheduler extends EventHandler<SchedulerEvent> {
|
|||
*/
|
||||
public void updateApplicationPriority(Priority newPriority,
|
||||
ApplicationId applicationId) throws YarnException;
|
||||
|
||||
/**
|
||||
*
|
||||
* Get previous attempts' live containers for work-preserving AM restart.
|
||||
*
|
||||
* @param appAttemptId the id of the application attempt
|
||||
*
|
||||
* @return list of live containers for the given attempt
|
||||
*/
|
||||
List<Container> getTransferredContainers(ApplicationAttemptId appAttemptId);
|
||||
}
|
||||
|
|
|
@ -770,7 +770,7 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
|
|||
am0.getApplicationAttemptId()));
|
||||
|
||||
// getTransferredContainers should not throw NPE.
|
||||
((AbstractYarnScheduler) rm2.getResourceScheduler())
|
||||
rm2.getResourceScheduler()
|
||||
.getTransferredContainers(am0.getApplicationAttemptId());
|
||||
|
||||
List<NMContainerStatus> containers = createNMContainerStatusForApp(am0);
|
||||
|
|
Loading…
Reference in New Issue