diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/conf/YarnServiceConf.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/conf/YarnServiceConf.java index 21470d41a68..2e3e0df13f0 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/conf/YarnServiceConf.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/conf/YarnServiceConf.java @@ -31,6 +31,7 @@ // Retry settings for container failures public static final String CONTAINER_RETRY_MAX = "yarn.service.container-failure.retry.max"; public static final String CONTAINER_RETRY_INTERVAL = "yarn.service.container-failure.retry-interval-ms"; + public static final String CONTAINER_FAILURES_VALIDITY_INTERVAL = "yarn.service.container-failure.validity-interval-ms"; public static final String AM_RESTART_MAX = "yarn.service.am-restart.max-attempts"; public static final String AM_RESOURCE_MEM = "yarn.service.am-resource.memory"; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/containerlaunch/AbstractLauncher.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/containerlaunch/AbstractLauncher.java index f497985072f..dc51b250723 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/containerlaunch/AbstractLauncher.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/containerlaunch/AbstractLauncher.java @@ -169,10 +169,11 @@ public ContainerLaunchContext completeContainerLaunch() throws IOException { return containerLaunchContext; } - public void setRetryContext(int maxRetries, int retryInterval) { + public void setRetryContext(int maxRetries, int retryInterval, + long failuresValidityInterval) { ContainerRetryContext retryContext = ContainerRetryContext - .newInstance(ContainerRetryPolicy.RETRY_ON_ALL_ERRORS, null, maxRetries, - retryInterval); + .newInstance(ContainerRetryPolicy.RETRY_ON_ALL_ERRORS, null, + maxRetries, retryInterval, failuresValidityInterval); containerLaunchContext.setContainerRetryContext(retryContext); } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/provider/AbstractProviderService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/provider/AbstractProviderService.java index 70155915ea6..2f840b1678c 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/provider/AbstractProviderService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/provider/AbstractProviderService.java @@ -39,6 +39,7 @@ import java.util.Map; import java.util.Map.Entry; +import static org.apache.hadoop.yarn.service.conf.YarnServiceConf.CONTAINER_FAILURES_VALIDITY_INTERVAL; import static org.apache.hadoop.yarn.service.conf.YarnServiceConf.CONTAINER_RETRY_INTERVAL; import static org.apache.hadoop.yarn.service.conf.YarnServiceConf.CONTAINER_RETRY_MAX; import static org.apache.hadoop.yarn.service.utils.ServiceApiUtil.$; @@ -109,6 +110,8 @@ public void buildContainerLaunchContext(AbstractLauncher launcher, .getInt(CONTAINER_RETRY_MAX, -1, service.getConfiguration(), yarnConf), YarnServiceConf .getInt(CONTAINER_RETRY_INTERVAL, 30000, service.getConfiguration(), - yarnConf)); + yarnConf), + YarnServiceConf.getLong(CONTAINER_FAILURES_VALIDITY_INTERVAL, -1, + service.getConfiguration(), yarnConf)); } }