commit 3175f5587d84fc1bd29eea08dffe34d7cf323725 Author: Eric Yang Date: Tue May 8 15:44:38 2018 -0400 YARN-8265. Bugfix for retrieving IP address of restarted docker containers. Contributed by Eric Yang 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/ServiceScheduler.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/ServiceScheduler.java index ee0a1a7..4eb40b6 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/ServiceScheduler.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/ServiceScheduler.java @@ -815,6 +815,19 @@ public void onUpdateContainerResourceError(ContainerId containerId, public void onStopContainerError(ContainerId containerId, Throwable t) { } + + @Override + public void onContainerRestart(ContainerId containerId) { + // Discover new IP address + ComponentInstance instance = liveInstances.get(containerId); + if (instance == null) { + LOG.error("No component instance exists for {}", containerId); + return; + } + ComponentInstanceEvent becomeReadyEvent = new ComponentInstanceEvent( + containerId, ComponentInstanceEventType.BECOME_READY); + dispatcher.getEventHandler().handle(becomeReadyEvent); + } } public ServiceMetrics getServiceMetrics() {